for / f立即关闭cmd提示符

时间:2011-08-29 22:01:48

标签: windows command-line cmd

当我打开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>

3 个答案:

答案 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'标志。