這樣沒有人看得懂,所以範例:

因為預設是以空白(Space)或跳位(Tab)做切割,所以不是整行讀取。

也是以空白做分隔。

這樣就可以知道「/f」的魅力了吧?
在前面參數可以自訂以取得想要的結果,用以下文字文件來解釋:

第一個「delims」:

就是指定字元去分割字串,當然「]」不存在,所以整句會直接上去,預設是空白(Space)或跳位(Tab)。而下面這樣會比較好懂:

二個字也行喔:

接下來是「skip」:

就是第一行不要處理啦!下一個是「eol」:

就是前面有符號「$」不要處理啦!下一個「tokens」比較複雜:

他是說,把字串以空白切出來,所以「This is a test.」會被切成「This」「is」「a」「test.」,而取其中第 1, 2, 3 段分別丟到 %i, %j, %k 中。這是「tokens」特殊用法,被切出來的會依序從原指令 in 前面的 %i 開始丟。下面這樣也可以:

用連字號也沒有問題。最後一個是沒有用過的「usebackq」:

是指原本用來表示「(檔案)」改成「("檔案")」、「("字串")」改成「('字串')」、「('指令')」改成「(`指令`)」。應該是為了要避免跳脫字元的關係,但個人沒有過的原因那就直接用跳脫字元就好了啊!補充一下:

參數是可以混搭的,要注意「delims」有可能需要用空白,所以建議擺在最後一個,避免判斷錯誤。
「for /f」實在是一個很實用的指令,但也是整個教學裡面最難學的。不過學完這個應該也會覺得還好,命令提示字元也不過爾爾,沒錯!的確沒有很難。下一章沒有新知識了,博君一笑罷了。
下一章:說文解字
- 2012-09-11 初次發佈。
- 2017-07-12 更新成 Windows 10 的版本。
skip的範例輸出結果應該有誤
回覆刪除謝謝提醒
刪除這個文章放了快二年終於被發現錯誤了
其實這些範例的圖不是真的顯示出來的結果
是用 type 顯示文字檔的結果
所以會有一些問題
skip 部份的結果應該會顯示完整的句子
除非加上 "skip=1 delims=i" 才會出現那個結果
現在找機會看有沒有辦法改成 Windows 10 版本
Windows 10 一小部份,但變得更加實用