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
的名称,其中是for
part中指定的变量的名称。文件:docs.microsoft.com/en-us/previous-versions/windows/it-pro/…–