如何解决仅在Powershell中显示错误和警告
Noob在这里寻求帮助
我为用户编写的脚本很少,我希望用户仅看到错误和警告输出,而没有所有成功输出。
在线搜索使我相信我需要介绍“错误”和“警告”的提示,但是在哪里我都找不到一种方法来实现只在脚本中获得这两个,请问有人可以解释我如何在脚本中实现只有错误和警告?
例如,脚本的以下部分显示了其下方的输出,用户体验是很多输出,错误会丢失。
$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
VM : testing_vm_1
ExitCode : 0
ScriptOutput :
Uid : /VIServer=vsphere.local\scripts@vcsa-st-vvol-67-2.lab.gdc.il.infinidat.com:443/VirtualMachine=VirtualMachine-vm-541/VMScriptResult=1665179762_0/
Length : 0
VM : testing_vm_1
ExitCode : 0
ScriptOutput : sudo: unable to resolve host Ubuntu-Template: Resource temporarily unavailable
Uid : /VIServer=vsphere.local\scripts@vcsa-st-vvol-67-2.lab.gdc.il.infinidat.com:443/VirtualMachine=VirtualMachine-vm-541/VMScriptResult=-942405014_0/
Length : 79
解决方法
您有两个选择:
- 将
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
输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。