У меня возникла проблема с выполнением другой команды в FOR-команде в Windows 7 Ultimate. Командная команда является частью пакетного файла и должна анализировать выходы другой команды.Пакет Windows: Выполнение команды с FOR/F - «команда не найдена»
Обычно это:
for /f %%a IN ('tasklist') DO echo %%a
должен выполнить команду "Tasklist" и вывод его результатов через эхо. Но я всегда получаю команду «не найден».
Я попытался выполнить команду за пределами шлюза, и он работает. Я также попытался выполнить множество внешних команд внутри for, но каждая команда сказала «команда не найдена».
Я также попытался примеры этого поста:
Batch: Execute command with quotes in for loop with piping to find
Я уверен
- , что команды существует
- , что я прочитал и исполнять права на него
- , что мой Пользователь находится в группе администратора
- что я запускаю t он командует командой «Запуск от имени администратора»
Но на этом компьютере ничего не работает. Те же команды работают на другом ПК, который также запускает Windows 7 Ultimate.
Значит, кто-нибудь может ошибиться на компьютере, где все команды не найдены?
Вот пример моих консольных выходов, когда я пытаюсь выполнить команду «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 EDIT: Проблема заключалась в том, как неверное значение для переменной системы envoirement "COMSPEC".
Я изменил ComSpec в «Erweiterte Systemeigenschaften-> Erweitert-> Umgebungsvariaben-> Systemvariablen» на «C: \ Windows \ system32 \ cmd.exe», и проблема была решена.
Благодаря @foxidrive и @jeb
ли ваш SCRI pt использует переменную с именем 'path'? – foxidrive
... или 'pathext'? вы можете попробовать выполнить скрипт в каталоге '% SystemRoot% \ System32 \', где находится команда 'tasklist' ... – aschipfl
Это не так, где находится команда. Я даже попробовал команду, которая лежит в той же папке, что и мой пакетный файл. Его слова «comand not found» для всего. Но я могу выполнить все команды outsite из for. Только в пределах команды no comand найдено – Radon8472