for / f立即closurescmd提示符

当我打开cmd.exe并input第一行,然后按ENTER,它工作正常。 当我input另一行并按下ENTER时,它立即closures。

我可以把('a')改成('asdfgh')然后是同样的问题。 或%q到%f同样的问题。

不同的是/ f,由于某些原因FOR / F('……')导致cmd.execlosures。

这发生在我的一个系统上,而不是另一个

C:\>for %q in ('a') do echo %q <ENTER> C:\>echo 'a' 'a' C:\>for /f %q in ('a') do echo %q <ENTER> 

这家伙似乎成功解决了一个非常类似的问题:

for / f立即关闭cmd窗口

在这种情况下,问题变成与COMSPEC环境变量有关,它看起来是最初错误地设置的。 这家伙申请从Windows帐户注销并返回。

添加一个paranthesis“(”,像这样:

 for %q in ('a') do ( 

它会提示你一个“更多?” 在下面的行中,直到你决定用“)”关闭你的块

看“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”标志。