Да, это возможно. Проблема с вашим текущим примером заключается в том, что вы окружаете правила цитирования аргументами:
uedit64.exe c:\temp\test.txt '/s,e="c:\temp\script.js"'
Эта форма должна работать. Когда вы используете запятые, powershell будет интерпретировать это как массив. Самый безопасный способ передачи аргументов во внешний исполняемый файл - использовать оператор stop-parser (--%
), чтобы избежать интерпретации powershell , но учтите, что это возвращается к cmd парсер в Windows:
#requires -Version 3
uedit64.exe --% C:\Temp\test.txt /s,e="C:\Temp\script.js"
Разница в синтаксических анализаторах заключается в том, что вы не можете раскрывать переменные (если вы хотели $path\script.js
) в аргументах после стоп-анализатора, но вы все равно можете использовать переменные окружения, используя синтаксис пакета %VAR%
.
В качестве передовой практики рекомендуется полностью определить ваш путь и использовать оператор вызова для ясности:
& C:\Temp\uedit64.exe