Как передать вывод Invoke-Expression в строку?
в скрипте PowerShell, я что-то вроде этого:
Invoke-Expression "& `"C:Scriptspsftp.exe`" ftp.blah.com"
Я хочу передать все выходные данные, ошибки и т. д. В строку $output
как я могу это сделать? Я пытался >
в конце, а также $output = ...
но ни один, кажется, не поймать ошибки и рода.
1 ответов
попробуйте это:
$output = Invoke-Expression "C:\Scripts\psftp.exe ftp.blah.com 2>&1"
использование оператора вызова &
является ненужным, как и цитирование пути exe в этом случае, так как путь не содержит пробелов. Если путь содержит пробелы, то его нужно будет процитировать, а затем вам придется использовать оператор вызова. Тем не менее, я не уверен, почему вам нужно использовать Invoke-Expression
вообще в данном случае. Следующий будет работать так же хорошо, учитывая ваш пример.
$output = C:\Scripts\psftp.exe ftp.blah.com 2>&1