首页 > 解决方案 > Powershell 重定向脚本输出

问题描述

我有两个 Powershell 脚本——第一个脚本称为 Script_A,第二个脚本称为 Script_B。这两个脚本可以总结如下:

Script_A - 调用 Script_B,在过程中传递一些参数,例如:

.\Script_B.ps1 $Param1 $Param2

Script_B - 通过使用 Script_A 发出的两个参数,即 $Param1 和 $Param2 执行 powershell 函数和其他逻辑

我现在想做的是将控制台上显示的结果重定向到输出文件。我已经尝试了使用 Out-File cmdlet 以及重定向字符“>>”的所有方法,但仍然无法获得所需的结果。

有什么建议么?

标签: powershellredirectdependenciesoutput

解决方案


拥有 Powershell 时,应尽可能避免使用控制台输出作为输入。

此处从 Script1 调用 Script2 的示例。Script2 将 powershell 对象返回给 Script1,这不是“哑字符串”——它是您不需要解析的结构化数据。

#SCRIPT1.ps1
$Param1 = 'Jane'
$Param2 = 'Don Pedro'
$result = & 'D:\Script2.ps1' -Name $Param1 -Surname $Param2
$result | ConvertTo-Json | Out-String

#SCRIPT2.ps1
Param(
    [String]$Name,
    [String]$Surname)
return [PSCustomObject]@{
    Name = $Name.ToLowerInvariant(); 
    Surname = $Surname.ToUpperInvariant(); 
    ID = (Get-Random)}

推荐阅读