cmd установить env и запустить скрипт - PullRequest
1 голос
/ 31 марта 2020

Я хочу запустить из powershell пакетный скрипт, которому перед запуском требуется переменная среды.

Это то, что я пробовал.

cmd.exe /c SET ENV_BASE_DIR='C:\Program Files\XY\Z 12.3' "&" "C:\Users\Admin\Desktop\file.bat /d /p"

1 Ответ

1 голос
/ 31 марта 2020

Чтобы избежать головной боли в кавычках, рассмотрите (временно) установку переменной среды из PowerShell, а затем вызовите пакетный файл напрямую:

$env:ENV_BASE_DIR = 'C:\Program Files\XY\Z 12.3'

C:\Users\Admin\Desktop\file.bat /d /p

$env:ENV_BASE_DIR = $null # remove the env. var again.

Если вы хотите решить эту проблему с помощью cmd.exe однострочный:

cmd.exe /c set ENV_BASE_DIR='C:\Program Files\XY\Z 12.3' `& C:\Users\Admin\Desktop\file.bat /d /p
  • Метасимвол & более просто экранируется с помощью ` (обратный удар), escape-символа PowerShell.

  • Путь к пакетному файлу и его аргументы передаются как отдельные аргументы.


Что касается того, что вы пытались:

В конечном счете, единственная проблема с вашей командой строка заключалась в том, что вы помещали двойные кавычки вокруг C:\Users\Admin\Desktop\file.bat /d /p в целом , в результате чего cmd.exe рассматривал всю строку как путь к исполняемому файлу.

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