仅在Powershell中显示错误和警告
诺布在这里寻求帮助 我有一些为用户编写的脚本要运行,我希望用户只看到错误和警告输出,而不看到所有成功输出 在线搜索让我相信我需要展示错误和警告的线索,但是我找不到一种方法来实现在脚本中只获取这两个,有人能解释一下我如何在只看到错误和警告的脚本中实现吗 例如,脚本的下面部分显示了它下面的输出,用户体验是一个错误丢失的大量输出仅在Powershell中显示错误和警告,powershell,output,pipeline,Powershell,Output,Pipeline,诺布在这里寻求帮助 我有一些为用户编写的脚本要运行,我希望用户只看到错误和警告输出,而不看到所有成功输出 在线搜索让我相信我需要展示错误和警告的线索,但是我找不到一种方法来实现在脚本中只获取这两个,有人能解释一下我如何在只看到错误和警告的脚本中实现吗 例如,脚本的下面部分显示了它下面的输出,用户体验是一个错误丢失的大量输出 $script1 = "sudo sed -i 's/'$hostn'/'$VMs_Name$i'/g' /etc/hosts" Invoke-VMSc
$script1 = "sudo sed -i 's/'$hostn'/'$VMs_Name$i'/g' /etc/hosts"
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
$script2 = "sudo sed -i 's/'$hostn'/'$VMs_Name$i'/g' /etc/hostname"
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script2 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
您有两个选择:
Invoke-VMScript
cmdlet的输出分配给$null
Invoke-VMScript
cmdlet的输出传输到Out-Null
cmdlet$null = Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
# or:
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash | Out-Null
function Verb-Noun
{
"normal output, shouldn't be printed when pipe to Out-Null"
Write-Warning "you should see me, I am a warning"
Write-Error "you should see me, I am an error"
}
Verb-Noun | Out-Null
演示:
$null = Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
# or:
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash | Out-Null
function Verb-Noun
{
"normal output, shouldn't be printed when pipe to Out-Null"
Write-Warning "you should see me, I am a warning"
Write-Error "you should see me, I am an error"
}
Verb-Noun | Out-Null
输出:
$null = Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
# or:
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash | Out-Null
function Verb-Noun
{
"normal output, shouldn't be printed when pipe to Out-Null"
Write-Warning "you should see me, I am a warning"
Write-Error "you should see me, I am an error"
}
Verb-Noun | Out-Null
您有两个选择:
Invoke-VMScript
cmdlet的输出分配给$null
Invoke-VMScript
cmdlet的输出传输到Out-Null
cmdlet$null = Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
# or:
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash | Out-Null
function Verb-Noun
{
"normal output, shouldn't be printed when pipe to Out-Null"
Write-Warning "you should see me, I am a warning"
Write-Error "you should see me, I am an error"
}
Verb-Noun | Out-Null
演示:
$null = Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
# or:
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash | Out-Null
function Verb-Noun
{
"normal output, shouldn't be printed when pipe to Out-Null"
Write-Warning "you should see me, I am a warning"
Write-Error "you should see me, I am an error"
}
Verb-Noun | Out-Null
输出:
$null = Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash
# or:
Invoke-VMScript -VM $VMs_Name$i -ScriptText $script1 -GuestUser root -GuestPassword xsignnet1 -ScriptType Bash | Out-Null
function Verb-Noun
{
"normal output, shouldn't be printed when pipe to Out-Null"
Write-Warning "you should see me, I am a warning"
Write-Error "you should see me, I am an error"
}
Verb-Noun | Out-Null
这里有一个非常好的指南,介绍了不同的蒸汽在PowerShell中的工作原理:这里有一个非常好的指南,介绍了不同的蒸汽在PowerShell中的工作原理:谢谢@MartinBrandl 1)难道没有一种方法可以应用于所有脚本吗?-然而,我的脚本基本上由大约10个命令组成,如果可能的话,我不想手动添加到每个命令中。2) $null&Out null不是将所有类型的管道发送到null吗?我确实希望看到错误和警告,正如我提到的,对于不希望看到输出的每一行,您都应该这样做。就像在您的示例中一样,您看到了Invoke-VMScript的响应,这是您不希望看到的,因此您必须通过管道将其输出为Null。您将看到错误,因为它们被发送到错误流谢谢@MartinBrandl 1)是否有方法应用于all脚本然而,我的脚本基本上由大约10个命令组成,如果可能的话,我不想手动添加到每个命令中。2) $null&Out null不是将所有类型的管道发送到null吗?我确实希望看到错误和警告,正如我提到的,对于不希望看到输出的每一行,您都应该这样做。就像在您的示例中一样,您看到了Invoke-VMScript的响应,这是您不希望看到的,因此您必须通过管道将其输出为Null。您将看到错误,因为它们被发送到错误流