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

如何通过PS1脚本在单个窗口中打开多标签页PowerShell?

将多个PowerShell进程整合到单个多标签窗口的方法

可以通过Windows Terminal实现需求,它原生支持多标签管理,且能通过命令行参数动态创建带指定命令的标签。以下是两种常用实现方式:

1. 在已有Windows Terminal窗口中添加新标签

如果已经打开了Windows Terminal,可通过wt命令在当前窗口新建标签并执行指定命令:

$windowTitle = "任务1窗口"
$command = "Get-ChildItem C:\"

# 在第一个已打开的Windows Terminal窗口中新建标签
wt -w 0 new-tab --title "$windowTitle" powershell.exe -NoExit -Command "`$host.ui.RawUI.WindowTitle = '$windowTitle'; Write-Host '$command'; $command"

参数说明:

  • -w 0:指定使用第一个已打开的Windows Terminal窗口(若要新开窗口可省略此参数)
  • new-tab:命令新建标签页
  • --title:设置标签页的显示标题
  • 后续参数为要在标签中启动的PowerShell命令,保持原有的-NoExit和命令逻辑即可

2. 一次性启动带多个标签的Windows Terminal窗口

如果需要批量创建所有标签,可先构建所有标签的参数,再一次性启动Windows Terminal:

# 模拟循环中的任务集合(替换为你的实际命令和标题)
$taskList = @(
    @{ Title = "文件扫描"; Command = "Get-ChildItem D:\Logs -Recurse" },
    @{ Title = "服务状态"; Command = "Get-Service | Where-Object { $_.Status -eq 'Running' }" },
    @{ Title = "网络测试"; Command = "Test-Connection baidu.com -Count 5" }
)

# 构建Windows Terminal启动参数
$wtArguments = @()
foreach ($task in $taskList) {
    $escapedCommand = "`$host.ui.RawUI.WindowTitle = '$($task.Title)'; Write-Host '$($task.Command)'; $($task.Command)"
    $wtArguments += "new-tab", "--title", $task.Title, "powershell.exe", "-NoExit", "-Command", $escapedCommand
}

# 启动Windows Terminal并创建所有标签
Start-Process wt.exe -ArgumentList $wtArguments

注意事项

  • Windows Terminal默认在Windows 11中预装,Windows 10可通过微软商店安装
  • 确保wt.exe已加入系统PATH,若未找到可使用完整路径(例如C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.18.2822.0_x64__8wekyb3d8bbwe\wt.exe,版本号可能不同)
  • 注意命令中的引号转义,避免因特殊字符导致命令执行失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:56:00