2008-10-07 33 views

回答

302

命令行用法:

for /f %f in (`dir /b c:\`) do echo %f 

批處理文件用途:

for /f %%f in (`dir /b c:\`) do echo %%f 

更新:如果該目錄包含了名稱與空間的文件,您需要更改分隔符的for /f命令正在使用。例如,您可以使用管道字符。

for /f "delims=|" %%f in ('dir /b c:\') do echo %%f 

更新2:(快一年,原來的答覆:-)後半),如果目錄名本身在名稱空間,可以使用在forusebackq選項:

for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f 

如果你需要使用輸出重定向或命令管道,使用轉義字符(^):

for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f 
+0

我嘗試使用此命令枚舉當前目錄中的文件[for(/ d%/ f)in('dir/b。')do echo %% f] ..不幸的是,帶空格的文件的名字已經打印到第一個空格。 謝謝 – 2009-12-07 00:07:55

+1

至少對於某些命令,文件變量應該用雙引號引起來。 – Jirka 2011-01-03 14:45:50

+0

這也是有用:如何做多的事情,每個文件在目錄中有一個批處理腳本http://stackoverflow.com/questions/2304867/how-to-do-multiple-things-to-each-file-in -a-directory-with-a-batch-script?lq = 1 – Snekse 2012-06-25 02:24:18

29

使用

for /r path %%var in (*.*) do some_command %%var 

有:

  • 路徑作爲起點的路徑。
  • %% var是一些標識符。
  • *。*是一個文件掩碼或變量的內容。
  • some_command是以path和var連接爲參數的命令。
75

另外,使用:

forfiles /s /m *.png /c "cmd /c echo @path" 

的FORFILES命令是在Windows Vista和Windows 7

-2

可我有一些惡意軟件標記目錄中的所有文件,隱藏/系統/只讀。如果其他人發現自己處於這種情況,請進入目錄並運行for /f "delims=|" %f in ('forfiles') do attrib -s -h -r %f

38

最簡單的方法:

從命令行中使用:

for %f in (*.*) do echo %f 

從一個批處理文件(折起來%百分號):

for %%f in (*.*) do echo %%f 

從文件夾中的批處理文件指定爲第一個參數:

for %%f in (%1\*.*) do echo %%f 
1

for%f in(* .mp4)do call ffmpeg -i「%〜f」-vcodec copy -acodec copy「%〜nf.avi」

相關問題