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

如何用Bash或PowerShell脚本实现Windows多Shell上下文自动化任务

当然可以搞定!不管是用PowerShell脚本还是Windows上的WSL Bash,都能完美实现你这个依次打开多个Shell窗口、每个窗口执行指定命令的工作流。下面给你两种具体的实现方案:

PowerShell 实现方案

PowerShell里的Start-Process命令是核心,它可以帮你启动新的Shell窗口并指定要执行的命令。针对你的需求,我们可以让前两个窗口执行命令后可选择暂停,第三个窗口执行完命令后保持打开状态。

把下面的代码保存为MultiShellWorkflow.ps1,双击运行或者在PowerShell里执行即可:

# 1. 当前Shell(Shell1)执行你的命令,这里用示例命令代替
Write-Host "=== Shell1 开始执行命令 ==="
# 替换成你实际要执行的命令,比如:Get-ChildItem
echo "Shell1 执行完成的内容"

# 2. 启动新的PowerShell窗口(Shell2),执行指定命令后暂停等待用户操作
Start-Process powershell.exe -ArgumentList "-Command", "Write-Host '=== Shell2 开始执行命令 ==='; echo 'Shell2 执行完成的内容'; pause"

# 可选:短暂等待,确保Shell2完全启动后再打开Shell3(时间可按需调整)
Start-Sleep -Seconds 2

# 3. 启动第三个PowerShell窗口(Shell3),执行命令后保持窗口不关闭
Start-Process powershell.exe -ArgumentList "-NoExit", "-Command", "Write-Host '=== Shell3 开始执行命令 ==='; echo 'Shell3 执行完成的内容'; Write-Host 'Shell3 将保持运行...'"

关键参数说明:

  • -Command:指定新窗口要执行的命令序列
  • -NoExit:强制第三个Shell窗口执行完命令后不自动关闭,保持交互状态
  • pause:让Shell2执行完命令后暂停,用户按任意键才会关闭窗口(如果不需要暂停可以去掉)
WSL Bash 实现方案

如果你用的是Windows上的WSL(比如Ubuntu子系统),可以通过Windows Terminal或者cmd来启动新的Bash窗口。下面是示例脚本:

保存为multi_shell_workflow.sh,在WSL Bash里执行chmod +x multi_shell_workflow.sh && ./multi_shell_workflow.sh:

#!/bin/bash

# 1. 当前Shell(Shell1)执行你的命令
echo "=== Shell1 开始执行命令 ==="
# 替换成你实际的命令,比如:ls -l
echo "Shell1 执行完成的内容"

# 2. 启动Windows Terminal新标签页(Shell2),执行命令后等待用户输入
wt new-tab --profile "Ubuntu" bash -c 'echo "=== Shell2 开始执行命令 ==="; echo "Shell2 执行完成的内容"; read -p "按任意键关闭Shell2..."'

# 可选:等待Shell2启动
sleep 2

# 3. 启动第三个终端窗口(Shell3),执行命令后保持窗口运行
wt new-tab --profile "Ubuntu" bash -c 'echo "=== Shell3 开始执行命令 ==="; echo "Shell3 执行完成的内容"; exec bash'

关键说明:

  • wt是Windows Terminal的命令行工具,如果你用的是旧版终端,可以替换成cmd.exe /c start bash -c "..."
  • exec bash会让第三个窗口执行完命令后替换当前进程为Bash,从而保持窗口不关闭
  • --profile "Ubuntu"要对应你WSL的配置名称,比如如果是Debian就改成"Debian"

额外注意事项:

  • 如果需要严格的顺序执行(比如必须等Shell1执行完才开Shell2,Shell2执行完才开Shell3),可以在Start-Process里加上-Wait参数(PowerShell),或者调整Bash里的等待逻辑,但这样会阻塞当前窗口直到新窗口关闭,按需选择即可
  • 命令里如果包含特殊字符(比如空格、引号),记得用单引号或双引号正确包裹,避免语法错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:01:44