使用新版 Windows Terminal 打开批处理脚本的方法

Windows 使用技巧 专栏收录该内容
6 篇文章 0 订阅

除了配置有点麻烦,其它都超级好的Terminal
Windows 终端是一个面向命令行工具和 shell(如命令提示符、PowerShell 和适用于 Linux 的 Windows 子系统 (WSL))用户的新式终端应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,还可以用于创建你自己的主题并自定义文本、颜色、背景和快捷键绑定。Windows Terminal 概述

为什么用到批处理脚本

有的软件需要设置环境变量,比如 Visual Studio 的命令行工具,当然,给 Windows Terminal 添加一个配置,commandline 填写:

"commandline": "%comspec% /k \"C://Program Files (x86)//Microsoft Visual Studio//2019//Community//VC//Auxiliary//Build//vcvars64.bat\""

就可以打开支持 cl.exe 的命令行了。

实际面临的情况可能更复杂,例如同时安装了多个版本的 ModelSim、QuestaSim,还有 Active HDL,这些软件的命令是冲突的(e.g. 都有 vsim 命令),同时还安装了多个版本的 Vivado。

这时候就需要写一个脚本,通过 set /p 获取简单的选项输入,就可以配置好相应的环境,在脚本最后执行 cmd /k,这样就得的一个设定好相应的环境变量的命令提示符窗口了。

如何使用新版 Windows Terminal 打开批处理文件

那么如何使用新的 Windows Terminal 打开批处理脚本呢?我看网上有很多博客说去改注册表。我对此不赞同。wt 是一个新项目,虽然现在 Microsoft Store 上早已上线正式版,但是它还会有不少BUG,武断地通过改注册表用 wt 完全替换 cmd 不太靠谱。

我想到的办法是在批处理脚本的开头调用 wt。举个例子:

@echo off
if not defined TAG (
    set TAG=1
    start wt -p "cmd" %0
    :: Windows Terminal 中 cmd 的配置名,我这里是“cmd”
    exit
)

chcp 65001
:: 用 vscode 写的,默认编码是 utf-8
cd %userprofile%/desktop
echo 这是正文
dir
pause

这样做基于两个现实:

  1. %0 指代脚本本身
  2. CMD 设置的环境变量会通过 start 命令传递

这样会有一个 CMD 窗口闪现一下,然后 wt.exe 开始执行后面的脚本。想要用新版的Windows 终端运行脚本,在这个脚本前添加这样简单的 if 语句就可以了。

有哪些需要改进的地方

需要改进的地方:

  1. 首先就是闪现一下的 CMD 窗口。但是我觉得无伤大雅啦。
  2. 最好是像用浏览器打开HTML文件那般,如果存在窗口,就在新标签打开。这个特性目前是没有办法实现的,但是 wt 将在未来支持这一特性,我在 Github 上已经看到 有 spec 在设计这一功能了(Commandline Arguments for the Windows Terminal
  • 2
    点赞
  • 5
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 5 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

k1435

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值