Answers:
命令行用法:
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:(快一年,原来的答复:-)后半),如果目录名本身在名称中有空格,您可以使用usebackq该选项for:
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
/f需要之后for?根据帮助文档,该/f标志将打开并读取每个文件。是否需要回显或重命名文件?
'dir /b "c:\program files"'应该使用`dir /b "c:\program files"`
最简单的方法:
在命令行中,使用:
for %f in (*.*) do echo %f
从批处理文件(将百分号加倍):
for %%f in (*.*) do echo %%f
从批处理文件中,文件夹指定为第一个参数:
for %%f in (%1\*.*) do echo %%f
dir /B输出相比,它不仅最简单,而且也更加优雅for。
用
for /r path %%var in (*.*) do some_command %%var
与:
%%var was unexpected at this time.您能举一个确切的例子吗?我尝试了一系列的for /r . %%var in (*.*) do echo %%var
其他方式:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
"%~nf"代表不带扩展名的文件f的名称,其中是forpart中指定的变量的名称。文件:docs.microsoft.com/en-us/previous-versions/windows/it-pro/…–