Как запустить powershell внутри BAT-файла из того же каталога - PullRequest
1 голос
/ 26 февраля 2020

У меня есть пакетный скрипт для запуска powershell, как установить путь к файлу ps1, если этот файл находится в той же папке, что и исполняемый файл BAT? Я использую это, но не работает.

PowerShell -NoProfile -ExecutionPolicy Unrestricted -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Unrestricted -File ""./Reboot.ps1""' -Verb RunAs}";

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Чтение call /? и Ссылки, относящиеся к пакетному сценарию :

Вы можете получить путь к самому пакетному сценарию с помощью %0, расширения параметров могут применяться поэтому %~dp0 вернет диск и путь к пакетному сценарию.

Использование … -File ""%~dp0Reboot.ps1"" … (обратите внимание, что %~dp0 включает конечный обратный слэ sh! )

0 голосов
/ 26 февраля 2020

С ./Reboot.ps вы обращаетесь к текущему рабочему каталогу. Что вам нужно, это каталог файла BAT. Вместо этого используйте %~d0%~p0/Reboot.ps.

Альтернативой может быть временная установка рабочего каталога в каталог BAT:

pushd %~d0%~p%"
rem run script with ./Reboot.ps1
popd

Очевидно, если ваш скрипт "Reboot.ps1" фактически перезагружает P C, вы можете пропустить popd.

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