使用命令提示符将PowerShell脚本的输出重定向到文件

时间:2019-07-11 09:13:46

标签: powershell cmd

如何在Windows 10中使用cmd将PowerShell 5.0脚本的输出重定向到文件?我尝试了以下方法:

powershell ".\myscript.ps1 | Out-File outfile.txt"

和:

powershell .\myscript.ps1 > outfile.txt

无济于事。 outfile.txt已创建,但保持为空。使用管理员权限运行命令提示符窗口。

在脚本中,我使用:

Write-Host $MyVar
Write-Host $SomeOtherVar

将值输出到屏幕。

2 个答案:

答案 0 :(得分:1)

  

在脚本中,我使用:

Write-Host $MyVar
Write-Host $SomeOtherVar
     

将值输出到屏幕。

是的,那是您的问题! Write-Host将信息直接写入主机应用程序的屏幕缓冲区,因此标准输出流将永远不会真正看到任何内容。

将您的Write-Host语句更改为Write-Output(或将其删除):

Write-Output $MyVar
Write-Output $SomeOtherVar
# or simply
$MyVar
$SomeOtherVar

答案 1 :(得分:1)

使用特定的PowerShell redirection operators
(它们似乎在(cmd)命令提示符下显示为wel)

重定向成功流(1>):

powershell .\myscript.ps1 1> outfile.txt

重定向所有流(*>):

powershell .\myscript.ps1 *> outfile.txt