PowerShell не запускает сценарий из командного файла
Я работаю над командным файлом, который может запускать сценарий PowerShell при двойном щелчке на командном файле. У меня возникли проблемы с выполнением сценария PowerShell для выполнения каких-либо действий при активации командным файлом. Скрипт PowerShell отлично работает, когда я тестирую файл ps1. Но как только я вызываю из него командный файл, он, похоже, не работает.
Пакетный файл:
@ECHO OFF
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%FileNotifyscript.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%PowerShellScriptPath%""' -Verb RunAs}";
1 ответ
Это побег проблема,
- cmd будет интерпретировать внутренние двойные кавычки как окончание первого
поскольку одинарные кавычки имеют особое значение только для PowerShell. - использовать обратную косую черту, чтобы избежать
\"
двойная цитата
:: Q:\Test\2019\04\22\SU_1428283.cmd
@ECHO OFF
SET "PowerShellScriptPath=%~dp0FileNotifyscript.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command ^
"& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File \"%PowerShellScriptPath%\"' -Verb RunAs}"
pause