Part 1:for /f
該指令用於對文件的讀取,猜測,f應該是file的簡寫吧示例:在bat文件的文件夾下,存放一個test.txt文件擬打算一行一行讀出該文件的內容@echo off
for /f %%i in (test.txt) do (echo %%i)
pause部分代碼解讀in ( ),括號內為文件名,逐行讀出
運行結果
那麼當in ( )的括號內是一個命令,也就是循環是對該命令的執行結果進行的,如何處理?只需將命令用單引號' '包圍起來即可其中find "q" test.txt實現在文本文件中找到含有q的行內容
@echo off
for /f %%i in ('find "q" test.txt') do (echo %%i)
pause
運行結果
Part 2:for /f usebackq
當文件名中含有空格時,上面的代碼就沒法按要求運行需增加usebackq,並且含有空格的文件名,需要整體使用雙引號包圍起來@echo off
for /f usebackq %%i in ("te test.txt") do (echo %%i)
pause
運行結果
@echo off
for /f usebackq %%i in (`find "q" "t test.txt"`) do (echo %%i)
pause
Part 3:for /d
實現對文件夾名稱的循環以下代碼實現了對當前文件夾下所有子文件夾名稱的輸出結合*和?可以實現對文件夾名稱的過濾@echo off
for /d %%i in (*) do (echo %%i)
pause
運行結果
@echo off
for /d %%i in (*) do (echo %%i >>name.txt)
pause
運行結果