如何过滤winget install命令输出仅显示进度条?
Winget安装时仅显示进度条的实现方法
问题根源:winget的进度条是通过**标准错误流(stderr)**输出的,而
Select-String默认只处理标准输出流(stdout),所以你之前用-NotMatch的方法抓不到它。可行解决方案:
- 先将winget的错误流重定向到标准输出流,用
2>&1实现 - 用正则表达式匹配进度条的特征行——winget的进度条通常是
[=========> ] 50%这类格式,以[开头、百分比结尾 - 最终执行命令:
winget install program-name 2>&1 | Select-String -Pattern '^\[.*\s+\d+%$'
说明:正则
^\[.*\s+\d+%$专门匹配进度条行,过滤掉其他所有输出内容。如果不同版本winget的进度条格式有差异,可根据实际输出调整正则的匹配规则。- 先将winget的错误流重定向到标准输出流,用
内容的提问来源于stack exchange,提问作者Ferus
相关产品推荐
相关产品推荐

