Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在Powershell中显示错误和警告_Powershell_Output_Pipeline - Fatal编程技术网

仅在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。您将看到错误,因为它们被发送到错误流