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
Другие вопросы по тегам