Как выполнить внешнюю программу с параметрами в PowerShell?

Я прочитал этот ответ stackru ответ, и он поймал меня там на полпути. Вот что мне нужно сделать.

Выполните эту команду:

"c:\myexe.exe <c:\Users\Me\myanswerfile.txt"

Если я запускаю это прямо из скрипта PowerShell

&'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, команда завершится с ошибкой, аналогичной первой.

Я в тупике. Какие-либо предложения?

2 ответа

Решение

Если вы хотите запустить программу, просто введите ее имя и параметры:

notepad.exe C:\devmy\hi.txt

Если вы хотите запустить exe-файл и перенаправить на него стандартный ввод, который, как кажется, является вашим примером, используйте:

Get-Content c:devmy\hi.txt | yourexe.exe 

Если вам нужно указать полный путь к программе, вам нужно использовать амперсанд и кавычки, иначе PowerShell думает, что вы определяете простую строку:

&"C:\Program Files (x86)\Notepad++\notepad++.exe"

Просто использовать & оператор

& "Program\path\program.exe" "arg1" "arg2" ....
Другие вопросы по тегам