Почему я не могу использовать переменную для имени программы в команде запуска? - PullRequest
1 голос
/ 20 февраля 2012

У меня есть пакетный скрипт, который в конечном итоге запускает другой пакетный файл и ожидает его завершения. Вот синтаксис, который у меня изначально был:

for %%i in ("*.xml") do start /separate /wait "%PROGRAM_PATH%" "%LOCAL_OUTGOING_PATH%\%%i"

Что произошло, так это то, что вместо открытия программы, на которую указывает% PROGRAM_PATH%, он запустил Internet Explorer и показал файл XML, заданный %% i. Это выглядело так, как будто он игнорировал часть% PROGRAM_PATH% команды запуска. Я пытался использовать% PROGRAM_NAME% без кавычек, которые тоже не работали. % PROGRAM_PATH%, кстати, указывает на "C: \ DOS \ copy.bat". Так что мне пришлось жестко запрограммировать путь там следующим образом:

for %%i in ("*.xml") do start /separate /wait C:\DOS\copy.bat "%LOCAL_OUTGOING_PATH%\%%i"

Это заставило его наконец-то работать так, как я хотел. Но я хочу иметь возможность использовать переменную. Почему это не работает?

1 Ответ

1 голос
/ 20 февраля 2012

Первый параметр START, заключенный в кавычки, принимается за заголовок окна.Если вы хотите задать параметр, заключенный в кавычки, вы ДОЛЖНЫ сначала указать заголовок, даже пустой:

for %%i in ("*.xml") do start "" /separate /wait "%PROGRAM_PATH%" "%LOCAL_OUTGOING_PATH%\%%i"

или

for %%i in ("*.xml") do start "Win Title" /separate /wait "%PROGRAM_PATH%" "%LOCAL_OUTGOING_PATH%\%%i"

Тип START /?для дальнейших деталей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...