在 cmd.exe(不是 PowerShell) 里,没有真正意义上的 alias ,但可以用 doskey 宏 来实现**"像 alias 一样"的效果**。下面按能不能长期用给你讲清楚。
✅ 一、临时 alias(当前 cmd 窗口有效)
基本语法
cmd
doskey 别名=真实命令
例子
cmd
doskey ll=dir
doskey gs=git status
之后在当前这个 cmd 窗口里:
cmd
ll
gs
⚠️ 关闭这个 cmd 窗口就没了(这是 doskey 的硬限制)。
✅ 二、支持参数的"alias"
doskey 是支持参数的(这一点比 PowerShell alias 还强一点):
cmd
doskey gco=git checkout $*
使用:
cmd
gco main
✅ 三、永久 alias(cmd 里最常用、最靠谱)
cmd 没有 profile,但有一个等价机制 :
👉 AutoRun 注册表
1️⃣ 写一个宏文件(推荐)
比如建一个文件:
text
C:\Users\xxx\cmd-aliases.cmd
内容:
cmd
@echo off
doskey ll=dir
doskey gs=git status
doskey gco=git checkout $*
doskey saas=cd Q:\src\Saas
2️⃣ 配置 cmd 启动自动加载(一次性)
执行下面命令(只对你当前用户生效):
cmd
reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun /t REG_EXPAND_SZ /d "C:\Users\xxx\cmd-aliases.cmd" /f
✅ 之后 每次新开 cmd.exe,这些 alias 都会自动生效。
✅ 四、验证是否生效
新开一个 cmd,直接敲:
cmd
ll
如果能用,说明配置成功。
❌ 五、cmd alias 的硬限制(一定要知道)
| 限制 | 说明 |
|---|---|
| ❌ 只对 cmd 有效 | PowerShell / bash / git-bash 都用不了 |
| ❌ 不是函数 | 不能写复杂逻辑 |
| ❌ 不能管环境 | 不能像 PowerShell 那样玩对象 |
| ✅ 适合短命令 | dir / git / build / run 非常合适 |
✅ 六、什么时候该用 cmd alias?
✅ 适合
- 老工程 / 内部工具只支持 cmd
- quickbuild / build.cmd / 旧脚本
- Windows 原生环境、DevBox 里被强制 cmd
❌ 不适合
- 复杂逻辑
- 长期维护
- 跨平台
👉 这些场景 PowerShell function / profile 明显更好
✅ 一句话总结
cmd 里没有真正 alias,用
doskey;临时直接敲,永久靠 AutoRun 注册表。