You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过批处理文件实现Windows Terminal多标签页SSH连接并运行项目服务

如何通过批处理文件实现Windows Terminal多标签页SSH连接并运行项目服务

嘿,我完全懂你的需求——想一键用批处理在Windows Terminal开多个标签,每个标签自动完成SSH登录服务器、切换到项目目录、启动开发服务对吧?之前你只能打开单个标签SSH进去,现在我来帮你搞定多标签的完整流程!

首先得理清两个核心关键点:

  • Windows Terminal的wt命令支持用--tab参数创建新标签,每个标签可以单独指定要执行的命令
  • SSH登录后直接执行远程命令的话,默认执行完就会断开连接,所以得加-t参数强制分配伪终端,这样执行完npm run dev后标签会保持打开,不会自动退出

接下来直接给你能用的批处理代码,分两种常见情况说明:

情况1:启动两个不同的项目(对应你提到的2个app)

如果两个app分别在dev/my_app1dev/my_app2目录,批处理可以这么写:

@echo off
start wt ^
    --tab "App 1 开发服务" ssh -t my-user-name@my-instance-my-user-name "cd dev/my_app1 && npm run dev" ^
    --tab "App 2 开发服务" ssh -t my-user-name@my-instance-my-user-name "cd dev/my_app2 && npm run dev"

情况2:同一个项目开两个标签(重复步骤1-4两次)

如果是要在两个标签里启动同一个dev/my_app的服务,代码改成这样:

@echo off
start wt ^
    --tab "App 开发服务-1" ssh -t my-user-name@my-instance-my-user-name "cd dev/my_app && npm run dev" ^
    --tab "App 开发服务-2" ssh -t my-user-name@my-instance-my-user-name "cd dev/my_app && npm run dev"

代码细节解释:

  1. ^是批处理的换行续行符,让代码看起来更整洁,你也可以把所有内容写在一行,但换行后可读性更好
  2. --tab "标签名称"可以自定义每个标签的显示名字,方便你区分不同的服务
  3. ssh -t 用户名@实例地址 "远程命令"里的-t是核心,它会强制SSH分配一个伪终端,这样执行完npm run dev后会话不会自动关闭,你能正常看到服务的日志输出
  4. 远程命令用双引号包裹,cd dev/my_app && npm run dev表示先切换到项目目录,确认成功后再执行启动命令,避免目录不存在时直接运行npm出错

最后把代码保存成run-dev-services.bat,双击运行就能看到Windows Terminal自动打开对应标签,完成所有预设步骤啦!

备注:内容来源于stack exchange,提问作者joyfuljoy

火山引擎 最新活动