При вложении в оператор if, запуск cmd не выполняется должным образом в командном файле Windows - PullRequest
0 голосов
/ 10 сентября 2018

По какой-то причине эта команда работает:

SET QUERY="heat wave"
START /d "C:\Program Files (x86)\Google\Chrome\Application" chrome.exe https://www.google.com/search?q=%QUERY: =+%

Но это не так:

SET SWITCH=1
IF %SWITCH%==1 (
SET QUERY="heat wave"
START /d "C:\Program Files (x86)\Google\Chrome\Application" chrome.exe https://www.google.com/search?q=%QUERY: =+%
)

1 Ответ

0 голосов
/ 10 сентября 2018

Ключ здесь будет enabledelayedexpansion

setlocal enabledelayedexpansion
SET SWITCH=1
IF %SWITCH%==1 (
SET QUERY="heat wave"
START /d "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://www.google.com/search?q=!QUERY: =+!
)

Подробнее о delayedexpansion do set /? из cmdline.

также возможно без delayedexpansion путем удвоения последнего % и вызова start.

SET SWITCH=1
IF %SWITCH%==1 (
SET QUERY="heat wave"
call START /d "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://www.google.com/search?q=%%QUERY: =+%%
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...