当前位置: 首页 > news >正文

将 Windows Terminal 作为外部工具集成到其他工具 程序 代码中

Windows Terminal 在 Windows 上是一款 UWP 应用,然而其依然具有良好的与外部工具的集成特性,你可以在其他各种工具中配置使用 Windows Terminal 打开。

本文介绍如何配置使用 Windows Terminal 打开。


@TOC

命令行调用

在应用商店可以下载到 Windows Terminal (Preview),下载安装后,你就可以开始使用 wt 命令了,这可以用来启动 Windows Terminal。(这里要说明一下,虽然你可以找到应用程序在 C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_0.9.433.0_x64__8wekyb3d8bbwe\WindowsTerminal.exe 下,但是你并没有权限直接去运行 UWP 应用的 exe 入口。

因此,你在任意的命令行工具,甚至是 Win+R 运行窗口,或者开始菜单的搜索中输入 wt 回车就可以运行 Windows Terminal 了。

增加的命令实际上来自于 C:\Users\lvyi\AppData\Local\Microsoft\WindowsApps 目录。你可以进入这个目录找到商店应用增加的所有的命令。

默认情况下直接打开会进入用户文件夹下。

默认打开

如果需要在特定的工作目录下打开,则需要修改配置。请点击设置按钮打开配置文件,然后修改默认终端的 startingDirectory 属性,从 %USERPROFILE% 修改到其他路径:

打开设置

如果需要使用“当前工作路径”,则将 startingDirectory 修改为 %__CD__%。注意,CD 两边分别是两个下划线。

    {
      ……
      "snapOnInput": true,
--    "startingDirectory": "%USERPROFILE%",
++    "startingDirectory": "%__CD__%",
      "useAcrylic": true
    },

在修改成 %__CD__% 之后,如果通过快捷方式直接启动 Windows Terminal,则会看到路径被切换到了 C:\Windows\System32。不过这不重要,因为即便是选择了用户路径,每次启动也都是要切走的。

工具集成

在了解了以上命令行调用后,工具集成就简单多了,只需要设置好启动 wt 命令,以及设置好工作路径即可。

如下图是我在 Directory Opus 中设置的 Windows Terminal 的一键打开按钮:

在 Directory Opus 中设置

关于 Directory Opus 集成工具可以参见我的其他博客:

  • 在 Directory Opus 中添加自定义的工具栏按钮提升效率 - walterlv
  • Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 - walterlv

C# 代码调用

使用 C# 代码启动的方法也非常常规,直接 Process.Start 然后设置工作路径即可。前提是前面设置了 %__CD__% 为启动路径。

var info = new ProcessStartInfo{
	FileName = "wt.exe",
	WorkingDirectory = @"D:\walterlv",
	UseShellExecute = false,
};
Process.Start(info);

参考资料

  • Programmatically Opening Windows Terminal in a Specific Folder - Rick Strahl's Web Log

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • 如何在终端和 PowerShell 中将一个命令自动重复执行多次
  • WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。
  • 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup?
  • Windows Linux 系统中获取端口被哪个应用程序占用
  • 设置用户无需密码自动登录到 Windows 系统
  • 最简单的代码,让 WPF 支持响应式布局
  • 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小
  • 如何给 GitHub Pages 配置多个域名?
  • 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook)
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • CSS魔法堂:Absolute Positioning就这个样
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Javascript设计模式学习之Observer(观察者)模式
  • JS笔记四:作用域、变量(函数)提升
  • MySQL几个简单SQL的优化
  • Promise面试题,控制异步流程
  • 分布式任务队列Celery
  • 你不可错过的前端面试题(一)
  • 入门级的git使用指北
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 微信小程序填坑清单
  • 为什么要用IPython/Jupyter?
  • 我感觉这是史上最牛的防sql注入方法类
  • 我看到的前端
  • 移动端唤起键盘时取消position:fixed定位
  • 硬币翻转问题,区间操作
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • C# - 为值类型重定义相等性
  • #{}和${}的区别?
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (06)金属布线——为半导体注入生命的连接
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (4)logging(日志模块)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)丶RabbitMQ的六大核心
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (论文阅读11/100)Fast R-CNN
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • . Flume面试题
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MVC 验证码
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .Net下的签名与混淆