如何阻止PowerShell在输出中打印警告信息?
通用屏蔽PowerShell警告输出的方法
完全理解你的需求——你已经清楚如何解决Az和AzureRM模块冲突的特定警告,只是想找个通用方案来抑制PowerShell中的警告输出,让脚本结果更干净。下面分享几个常用的方法:
针对单命令的
-WarningAction参数
和你用-ErrorAction屏蔽错误的思路一样,直接给目标cmdlet加上-WarningAction SilentlyContinue参数,就能单独屏蔽该命令的所有警告:# 示例:获取Azure虚拟机时屏蔽警告 Get-AzVM -WarningAction SilentlyContinue全局会话级别的偏好设置
如果希望整个PowerShell会话里的所有命令都不再输出警告,可以修改全局偏好变量:# 设置全局屏蔽警告 $WarningPreference = 'SilentlyContinue'之后要是想恢复默认的警告输出,把变量值改回
'Continue'即可。重定向警告输出流
PowerShell的警告属于第3号输出流,你可以直接把它重定向到$null来丢弃:# 仅屏蔽当前命令的警告 Get-AzVM 3> $null # 同时屏蔽错误(第2号流)和警告 Get-AzVM 2>&1 3> $null这种方式适合临时屏蔽某段脚本的警告,不会影响全局的偏好设置。
小提醒:虽然屏蔽警告能让输出更整洁,但警告往往包含潜在问题的提示信息,建议只在你确认不需要这些提示的场景下使用哦。
内容的提问来源于stack exchange,提问作者Avg_Debugger
相关产品推荐
相关产品推荐

