Как я могу выполнить внешнюю программу с параметрами в PowerShell?
Я прочитал этот ответ qaru.site/info/32232/..., и он достает меня на полпути. Вот что мне нужно сделать.
Выполните следующую команду:
"c:\myexe.exe <c:\Users\Me\myanswerfile.txt"
Если я запустил это прямо из моей powershell script
&'c:\myexe.exe <c:\Users\Me\myanswerfile.txt'
Я получаю эту ошибку:
The term 'C:\myexe.exe <c:\Users\Me\myanswerfile.txt' is not recognized as the name of
a cmdlet, function, script file, or operable program. Check the spelling of the name,or
if a path was included, verif that the path is correct and try again.
Теперь я попробовал несколько вариантов этого, включая размещение исходной команды в переменной с именем $cmd, а затем передачу
Если я добавлю '<' к переменной $cmd команда выходит из строя с аналогичной ошибкой, как и первая.
Я в тупике. Любые предложения?
Ответы
Ответ 1
Если вы хотите запустить программу, просто введите ее имя и параметры:
notepad.exe C:\devmy\hi.txt
Если вы хотите запустить exe и перенаправить stdin к нему, который кажется вашим попыткой, используйте:
Get-Content c:devmy\hi.txt | yourexe.exe
Если вам нужно указать полный путь к программе, вам нужно использовать амперсанды и кавычки, иначе powershell думает, что вы определяете простую строку:
&"C:\Program Files (x86)\Notepad++\notepad++.exe"
Ответ 2
Просто используйте оператор &
& "Program\path\program.exe" "arg1" "arg2" ....