You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PowerShell多对象变量在弹出框中每行显示一个对象?

解决PowerShell弹窗中进程名换行显示的问题

当然可以实现!你遇到的问题是因为$test本质是一个字符串数组,当你直接把它放进弹窗的字符串参数里时,PowerShell会默认用空格将数组元素拼接成一行文本,所以弹窗里所有结果挤在一起。

要让每个进程名单独占一行,只需要用**-join操作符**把数组元素用换行符(n)连接起来就行。换行符n能被Wscript.Shell的PopUp方法识别,从而实现换行效果。

修改后的完整代码:

$test = (Get-Process -Name Win*).ProcessName
$test  # 控制台依然每行显示一个结果
# 将数组用换行符连接成单个字符串
$formattedTest = $test -join "`n"
# 弹窗显示格式化后的文本
(New-Object -COM Wscript.Shell).PopUp($formattedTest, 0, "Title", 48)

更简洁的写法(不用额外变量):

如果不想多定义一个变量,也可以直接在PopUp方法里完成拼接:

$test = (Get-Process -Name Win*).ProcessName
$test
(New-Object -COM Wscript.Shell).PopUp($test -join "`n", 0, "Title", 48)

小提示:

如果你想让换行更符合Windows系统的标准(回车+换行),可以改用rn作为分隔符,效果是一样的:

$test -join "`r`n"

这样修改后,弹窗里的每个进程名就会单独显示在一行啦!

内容的提问来源于stack exchange,提问作者Rakha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:47:27