【发布时间】:2012-01-17 16:23:19
【问题描述】:
for /r %%i in (*) do (echo %%i)
结果
%%i 这个时候出乎意料
为什么?
【问题讨论】:
-
不是
%i在实际的for里面吗?就像echo的参数一样。 -
在一个适合我的批处理中,文件中是否还有其他代码?
-
% 用于命令行,%% 用于批处理文件。
for /r %%i in (*) do (echo %%i)
结果
%%i 这个时候出乎意料
为什么?
【问题讨论】:
%i在实际的for里面吗?就像echo 的参数一样。
您必须尝试从命令行而不是从批处理文件中运行命令。从命令行运行时使用单个 % 而不是两个。
for /r %i in (*) do (echo %i)
在命令行中输入 HELP FOR 并阅读第 3 段。
【讨论】:
语法:
FOR /R [[drive:]path] %%parameter IN (set) DO command
需要 %%i 之前的路径...这就是为什么它是 Unexpected
如果您想对当前目录执行*,只需使用“.\”作为路径
for /r ".\" %%i in (*) do (echo %%i)
【讨论】:
如果有人想知道如何将数据提取到文件中
使用 CMD
所有文件
for /r %i in (*) do @echo %~ni >> AllFiles.txt
对于特定的扩展
for /r %i in (*.mp3) do @echo %~ni >> songs.txt
带扩展名的文件名
for /r %a in (*) do @echo %~nxa >> FileNameWithExtension.txt
注意: 如果您正在制作批处理脚本,请使用“%%”而不是上面提到的每个“%”
【讨论】: