windows - 在我的 for/f 循环中运行时所有命令均出错 "not recognised as an internal or external command"

标签 windows batch-file cmd

我遇到了一个奇怪的问题,希望有人能帮助我解决。我有一个批处理脚本,它使用 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.

有人有什么想法吗?

最佳答案

有几个问题:

  1. 如果使用/f,则告诉 for 循环读取文件。不要将其与命令混合。
  2. 如果使用反引号 (`),则告诉 for 循环执行命令。您使用了直勾号 (')
  3. 如果要在文件名中使用引号,请使用 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/

相关文章:

windows - C程序在循环中写入同一文件会导致Windows崩溃

PowerShell - 批量更改文件编码为 UTF-8

tfs - 如何使用命令行客户端将 TFS 工作区映射到本地

batch-file - 通过批处理命令禁用 cmd 关闭按钮

php - FFmpeg 不会从 php 运行

windows - CreateEnvironmentBlock 返回的 block 对于 Windows Vista 上的 CreateProcessWithLogon 来说太大了

xml - 批量转换xml到json Mac

windows - 在批处理文件中找不到语法错误

windows - SC - ChangeServiceConfig 失败 5 : on cmd

windows - SQL Server-连接在登录过程中被强行关闭