如何将Invoke-Expression的输出传递给字符串?

JBu*_*ace 9 powershell

在Powershell脚本中,我是这样的:

Invoke-Expression "& `"C:\Scripts\psftp.exe`" ftp.blah.com"
Run Code Online (Sandbox Code Playgroud)

我想将所有输出,错误等管道传递给字符串 $output

我怎样才能做到这一点?我最后也尝试过>,$output = ...但似乎都没有发现错误和排序.

Kei*_*ill 13

试试这个:

$output = Invoke-Expression "C:\Scripts\psftp.exe ftp.blah.com 2>&1"
Run Code Online (Sandbox Code Playgroud)

使用电话运营商&是不必要的,因为是引用在这种情况下exe文件路径,因为路径不包含空格.如果路径包含空格,则需要引用它,然后您必须使用调用运算符.也就是说,Invoke-Expression在这种情况下,我不确定为什么你需要使用它.鉴于您的示例,以下内容也可以正常工作.

$output = C:\Scripts\psftp.exe ftp.blah.com 2>&1
Run Code Online (Sandbox Code Playgroud)