前言
你是否对于频繁手打ssh连接服务器感到厌烦? 你是否因习惯ls而想不起来dir指令感到DNA错乱?
使用以下方法, 设置CMD的指令别名, 解决你的痛点! (doge
CMD别名设置方法
1. 建立一个批处理脚本
在你习惯的目录建立一个aliases.bat文件:
@echo off
chcp 65001
doskey ls=dir /b $*
doskey ll=dir /ONE $*
doskey cat=type $*
doskey rm=del $*
doskey mv=move $*
doskey mkdir=md $*
doskey clear=cls
doskey shell=PowerShell $*
doskey alias=doskey /macros
doskey sshrt=ssh -p 22 rt@xxx.xxx.xxx.xxx
doskey相当于Linux中的alias, 等号左边是右边的别名
$*
表示这个命令还可能有其他参数
但是仅仅这样还不够, 因为doskey这个指令的别名效果仅仅在当前窗口有效, 无法持久化, 一旦关闭窗口后就会失效, 所以我们需要让每次打开cmd时都能够自动执行这个doskey脚本.
这就要借助注册表实现.
2. 编辑注册表
有时候我们希望cmd启动的时候就能执行一条或者多条命令, 但是cmd又没有linux下类似profile, bashrc这种东西.
其实cmd也有个类似的东西, 命令提示符窗口下输入cmd /?打开cmd帮助, 向下翻你会发现cmd启动的时候会搜索注册表的两个键值, 并执行这两个键值对应的命令. 这两个键值是:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
顾名思义, 第一个是对所有用户生效, 第二个是对当前用户生效.
这里也能够知晓, 必须将键名设置为AutoRun才会被cmd自动执行, 乱取名是没用的!
默认情况下是没有AutoRun这个键值的, 可以自己新建, 类型为字符串. 然后把要执行的命令放到一个.bat/.cmd批处理中, 然后这个键的值为该.bat/.cmd批处理的路径.
这样每次打开cmd的时候, 这个批处理都会被执行.
我的操作步骤如下: (仅供参考)
快捷键win+r唤起运行程序, 键入regedit启动注册表.
进入地址:计算机\HKEY_CURRENT_USER\Software\Microsoft\Command Processor
:

可以看到, 因为我这里电脑环境安装了miniforge3, 已经被miniforge3创建了一个AutoRun, 就没办法再新建AutoRun了.
所以我这里选择换用HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
去编辑全局的配置:

这里全局配置里没有其他程序建立过AutoRun键值, 我就能建一个AutoRun键值, 并配置我的bat脚本路径.
当然, 不嫌麻烦的话, 也可以和miniforge3共用AutoRun, 去编辑miniforge3的bat脚本添加你的内容, 或者在miniforge3创建的AutoRun里将数据栏的指令加上你的脚本路径应该也没问题. 不过这样就有可能因为删除miniforge3导致这个键值被删除, 或者miniforge3更新导致失效.
3. 参考文献
Settings/Windows/cmd/windows下实现类似linux下alias的命令别名.md at master · hosxy/Settings