我遇到了一个奇怪的问题,希望有人能帮助我解决。我有一个批处理脚本,它使用 FOR/F
循环从文件中读取并相应地设置变量。命令写法如下:
FOR /F "skip=1 tokens=1-3 delims=," %%A in ('type "C:\ReconfigureSettingsFile.csv"') do (commands)
错误是:
'type "C:\ReconfigureSettingsFile.csv"' is not recognized as an internal or external command, operable program or batch file.
即使我运行这个也会发生:
for /f "usebackq delims==" %i in (`set`) do @echo %i
'set' is not recognized as an internal or external command, operable program or batch file.
有人有什么想法吗?
最佳答案
有几个问题:
- 如果使用
/f
,则告诉 for 循环读取文件。不要将其与命令混合。 - 如果使用反引号 (`),则告诉 for 循环执行命令。您使用了直勾号 (')
- 如果要在文件名中使用引号,请使用
usebackq
所以要么使用
FOR /F "skip=1 tokens=1-3 delims=," %%A in (C:\ReconfigureSettingsFile.csv) do (commands)
不带类型
并且不带引号或
FOR /F "usebackq skip=1 tokens=1-3 delims=," %%A in ("C:\ReconfigureSettingsFile.csv") do (commands)
不带类型
但带引号或
FOR "usebackq skip=1 tokens=1-3 delims=," %%A in (`type "C:\ReconfigureSettingsFile.csv"`) do (commands)
有 type
但没有 /F
。
不要忘记在命令中使用 %%A
、%%B
和 %%C
。
关于windows - 在我的 for/f 循环中运行时所有命令均出错 "not recognised as an internal or external command",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503595/