2013-02-15 3 views
1

Я хочу найти путь к исполняемому файлу из системной переменной пути в Windows и назначить его переменной. (Unix 'который' команда)Команда работает в cmd.exe, но не в * .bat файле

Когда я открываю cmd.exe и тип:

for %i in (cmd.exe) do @set cmdPath=%~$PATH:i 

Он работает (я проверить его с 'эхо% cmdPath%')

Но когда я копирую этот строка в .bat-файл, это порождает у меня ошибку во время выполнения, что «~ $ PATH: я не ожидал в этот момент»

Не знаю, почему, как исправить?

ответ

1

Прочитайте документ FOR (тип help for или for /?).

Чтобы использовать команду FOR в пакетной программе, укажите вместо переменной %% вместо переменной%. Переменные имена чувствительны к регистру, поэтому% i отличается от% I.

Вам просто нужно удвоить свои проценты, когда в пакетном файле.

for %%i in (cmd.exe) do set cmdPath=%%~$PATH:i 

Обратите внимание, что %COMSPEC% уже должен провести полный путь к CMD.exe

+0

Спасибо за полный ответ. cmd.exe был просто примером (notepad.exe было бы лучше). Я искал путь cmake.exe. – Dorian

Смежные вопросы