windows terminal 下如何将快捷命令写到一个文件而不是搞多个批处理文件?

我知道 linux 下可以在 .bashrc 文件里可以做一些快捷方式的命令,但是在 windows 下做快捷命令,我现在的做法是搞一个目录加入到系统环境变量,然后在这个目录里面写一些批处理文件,一个文件一个命令,感觉很是麻烦,因此想请问大佬 windows terminal 下能否将所有批处理文件放到一个文件里面去的方法呢?

请大佬们不要告诉我 cmd power shell 这几个命令行下的处理方法啊!希望是 windows terminal 下的处理方法。

阅读 946
avatarAI BotBETA

在 Windows Terminal 中,你可以使用以下方法将多个快捷命令写入一个文件中:

  1. 创建一个文本文件,例如 shortcuts.txt
  2. shortcuts.txt 文件中,每一行写入一个快捷命令。你可以使用命令的完整路径或相对路径。

例如,以下是一个 shortcuts.txt 文件的示例:

# 快捷命令 1
cd C:\Users\Username\Documents
dir

# 快捷命令 2
cd C:\Program Files\ExampleApp
start ExampleApp.exe
  1. shortcuts.txt 文件放到一个目录下,并将其添加到 Windows Terminal 的配置文件中。你可以在 Windows Terminal 的设置中进行配置文件的编辑。
  2. 在 Windows Terminal 的配置文件中,找到 "commandOverrides" 部分,并添加以下内容:
"commandOverrides": {
  "*": {
    "commands": {
      "open": {
        "shell": "powershell",
        "command": "type $home\\AppData\\Local\\Packages\\Microsoft.WindowsTerminal_8wekyb3d8bbwe\\LocalState\\shortcuts.txt"
      }
    }
  }
}

这将告诉 Windows Terminal 在执行 open 命令时,读取并执行 shortcuts.txt 文件中的命令。

  1. 保存配置文件并重新启动 Windows Terminal。
  2. 现在,当你执行 open 命令时,Windows Terminal 将按照 shortcuts.txt 文件中的顺序执行每个快捷命令。

请注意,上述方法使用了 PowerShell 解释器来执行快捷命令。如果你想使用其他解释器(如 cmd 或 bash),你可以相应地修改配置文件中的 "shell""command" 值。

2 个回答
.bashrc 里可以做一些快捷方式的命令

.bashrc 说起来是一个配置,实际上就是一个 Bash 脚本,它会在 Bash 启动的时候加载执行。而所谓的“做一些快捷方式的命令”,实际上是利用了 alias 命令给某些命令定义了别名,方便快捷使用而已。

所以按你的要求,可以归纳成一句话:做一个可初始化环境的脚本来映射一些命令。

但是说到 Windows Terminal,这东西就是一个终端工具,本质上是 Windows 里终端工具的 UI 封装,本质上里面跑的还是各种终端环境,比如:CMD(命令提示符)、PowerShell、WSL 等:

snipaste_2024-01-31_22-33-01.png

如果不了解,可以先看看官方介绍:Windows 终端概述 | Microsoft Learn

而不同的终端环境自动脚本和映射命令的方式是不一样的。Windows 下主要是 CMD 和 PowerShell。CMD 在逐渐被淘汰,不过有时候不得不用。而 PowerShell 系统默认带的版本较低,建议使用最新的 PowerShell 7。

CMD

CMD 使用 doskey 命令来配置命令别名。具体怎么使用可以用 doskey /? 来查看帮助,或者网上搜。举个例

snipaste_2024-01-31_22-51-30.png

如果希望打开 CMD 的时候自动运行初始化脚本,需要配置注册表,可以在这两个地方配置名为 AutoRun 的字符串值 (REG_SZ),指向特定的脚本文件。

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\
  • HKEY_CURRENT_USER\Software\Microsoft\Command Processor

PowerShell

PowerShell 本身就有 alias 命令,甚至已经预置了不少“别名”,直接用 alias 就可以看到

snipaste_2024-01-31_22-52-48.png

设置别名用 Set-Alias 命令就好。比如 where 命令在 Windows 下可以用来查找可执行命令的位置,但是在 PowerShell 中被 where 别名覆盖掉了,所以可以自己定义一个 whereis 来代替:

Set-Alias -Name whereis -Value C:\Windows\System32\where.exe

如果想运行初始化脚本也很简单,$profile 指向的文件就是初始化脚本,直接编辑就行。$profile 是一个 PowerShell 变量,直接使用可以看到它的值,可以看到它就在“我的文档”下。第一次编辑的时候如果这个文件不存在,创建一个就好。

snipaste_2024-01-31_22-54-29.png

如果是 CMD 的话,应该没啥好办法,你只有创建单个文件的。

如果是 powershell 的话,你可以直接执行

echo $profile

(你可以在 Windows Terminal 里面将 powershell 或者 pwsh 设置为默认(推荐)。)

他会显示一个路径,你使用文本编辑器打开进行编辑就行了,如果没有这个文件,你可以执行以下命令来创建,或者手动创建,他就相当于 bash 的 .bashrc

New-Item $profile -Type File -Force

你可以在里面使用 powershell 的语法进行编写,举个例子。

function say1($name){
    echo "name: $name, args: $args"
}

现在重新打开 powershell 或者执行,重新载入文件

. $profile

执行命令

say1 anna a1 a2 a3

将会得到输出 name: anna, args: a1 a2 a3

PowerShell 文档:

注意:MSDN 上 Powershell 默认文档版本是最新的 7.4 ,而系统自带的 PowerShell 大多不是最新的,你需要执行 echo $Host 来查看你得 PowerShell 版本,寻找对应版本的文档。

一般还另外建议安装单独的 Pwsh

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏