我在Windows 7旗舰版的FOR命令中执行其他命令时遇到问题。 for-command是批处理文件的一部分,应解析另一个命令的输出。Windows批处理:使用FOR/F执行命令 - “找不到命令”
一般这样:
for /f %%a IN ('tasklist') DO echo %%a
应执行命令“任务列表”和输出经由回声其结果。 但我总是得到“命令未找到”。
我试图执行forloop以外的命令,它的工作原理。 我也尝试在for中执行大量的外部命令,但是每个命令都显示“找不到命令”。
我也试过这个帖子的例子:
Batch: Execute command with quotes in for loop with piping to find
我真的确信
- 该命令存在
- 我已阅读并执行它的权利
- 我的用户在管理员组
- 我跑t他以“以管理员身份运行”命令
但是这台电脑没有任何工作。 相同的命令可以在另一台PC上运行,这也是Windows 7的终极版本。
那么有没有人有一个想法可能是错误的PC上找不到所有的命令?
这是我用控制台输出命令“ls”试用时的一个例子。 ls.exe是gun4win项目的可执行文件,它位于运行批处理文件的同一文件夹中。 窗户是德语,所以错误输出也是德语。
C:\测试> 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.
FINAL编辑: 问题是该系统envoirement变量 “COMSPEC” 为错误的值。
我将ComSpec的“Erweiterte Systemeigenschaften-> Erweitert-> Umgebungsvariaben-> Systemvariablen”更改为“C:\ Windows \ system32 \ cmd.exe”,问题解决了。
感谢@foxidrive和@jeb
贵得离谱pt使用名称为'path'的变量? – foxidrive
...或“pathext”?你可以尝试执行'%SystemRoot%\ System32 \'目录中的脚本,其中'tasklist'命令位于... – aschipfl
这不适用于命令所在的位置。我甚至尝试了一个命令,它放置在像我的批处理文件一样的文件夹中。它说“一切都找不到”。但我可以执行for的所有外部命令。只有在找不到任何指令 – Radon8472