我在 Windows 7 Ultimate 上的 FOR 命令中执行其他命令时遇到问题。for 命令是批处理文件的一部分,应该解析另一个命令的输出。
通常是这样的:
for /f %%a IN ('tasklist') DO echo %%a
应该执行命令“Tasklist”并通过 echo 输出其结果。但我总是得到“找不到命令”。
我试图在 forloop 之外执行命令并且它有效。我还尝试在 for 中执行许多外部命令,但每个命令都说“找不到命令”。
我也试过这篇文章的例子:
我确定
- 命令存在
- 我已阅读并执行它的权利
- 我的用户在管理员组中
- 我使用“以管理员身份运行”运行命令
但是在这台电脑上什么都没有。相同的命令可以在另一台运行 Windows 7 Ultimate 的 PC 上运行。
那么有没有人在没有找到所有命令的电脑上的想法可能是错误的?
这是我使用命令“ls”尝试时控制台输出的示例。ls.exe 是来自 gun4win 项目的可执行文件,它位于运行批处理文件的同一文件夹中。windows 是德文的,所以错误输出也是德文的。
C:\test>test_for.bat
C:\test>rem --- test a command stand-alone ---
C:\test>ls
ls.exe test_for.bat
C:\test>rem --- test same command in a FOR-Loop ---
C:\test>for /F "delims=" %a in ('ls') do echo FOR-OUTPUT: %a
Der Befehl "ls" ist entweder falsch geschrieben oder konnte nicht gefunden
werden.
最后编辑:
问题是系统环境变量的错误值ComSpec
。
我更改了 ComSpecErweiterte Systemeigenschaften->Erweitert->Umgebungsvariaben->Systemvariablen" to "C:\Windows\system32\cmd.exe
并解决了问题。
感谢@foxidrive 和@jeb