这会将输出写入日志文件:
& $Env:WinDir\system32\inetsrv\appcmd.exe >test.log
但是如果我想将输出保存在字符串变量中以便在电子邮件正文中使用它呢?
我没有运气就试过了..
$test = ""
& $Env:WinDir\system32\inetsrv\appcmd.exe >$test
Write-Host $test
答案 0 :(得分:36)
你必须这样做:
$test = & $Env:WinDir\system32\inetsrv\appcmd.exe
如果您还想重定向错误,请在最后添加2>&1
。
答案 1 :(得分:10)
捕获可执行文件的输出就像,
一样简单$cmdOutput = &"Application.exe" 2>&1
2>& 1 - 包括输出中的错误流
PowerShell中可执行文件的返回类型是字符串数组。如果记录此类输出,
Write-Host $cmdOutput
将数组中的字符串输出到由空格
分隔的输出流要按字符串方式打印它们,请选择
Write-Output $cmdOutput
或
$cmdOutput = &"Application.exe" | Out-String
Write-Host $cmdOutput