当我打开cmd.exe并键入第一行并按ENTER键时,它可以正常工作。当我输入其他行并按下ENTER时,它会立即关闭。
我可以将('a')改为('asdfgh')然后同样的问题。或%q到%f同样的问题。
差异是/ f,由于某种原因,带有('......')的FOR / F会导致cmd.exe关闭。
这发生在我的一个系统上,而不是另一个
C:\>for %q in ('a') do echo %q <ENTER>
C:\>echo 'a'
'a'
C:\>for /f %q in ('a') do echo %q <ENTER>
答案 0 :(得分:4)
这家伙似乎已成功解决了一个非常类似的问题:
for /f closes cmd window immediately
在这种情况下的问题与COMSPEC
环境变量有关,它最初被错误地设置,看起来如此。这家伙从Windows帐户申请退出并重新登录。
答案 1 :(得分:0)
添加括号“(”,如下所示:
for %q in ('a') do (
它会提示你“更多?”在以下行中,直到您决定使用“)”
关闭for block答案 2 :(得分:0)
查看'FOR'('FOR /?')的帮助,您可以看到'/ F'选项用于解析文件输入并具有以下选项:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
请注意,最后一个条目...单引号值被视为要运行的命令,该命令的输出是'FOR'正在解析的内容。
也许你在一台机器上有'a'命令/可执行文件,但在另一台机器上没有?
如果你特别想要'/ F'提供的行为,你应该只使用'/ F'标志。