You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows CMD中将默认echo替换为UnxUtils的Bash版本

CMD 中覆盖内置echo命令调用UnxUtils版本的方法

核心原因

Windows CMD 中echo属于Shell内置命令,执行优先级高于所有通过PATH环境变量检索到的外部可执行程序。因此即使你已经将C:\Users\username\win_bash\添加到PATH,直接输入echo时仍会优先调用CMD内置版本,无法触发UnxUtils的echo.exe。

推荐方案:通过doskey配置永久别名

该方法无副作用,配置简单,是最常用的替换内置命令的方案。

  • 临时测试(仅当前CMD窗口生效)
    直接在CMD窗口执行以下命令,后续当前窗口内输入echo就会调用UnxUtils版本:
    doskey echo=C:\Users\username\win_bash\echo.exe $*
    
    命令末尾的$*是doskey的参数通配符,会将你输入在echo后的所有参数原样传递给目标exe程序。
  • 永久生效(所有新开CMD窗口自动加载)
    1. 新建一个批处理文件,比如存储路径为C:\Users\username\win_bash\cmd_init.bat,文件内写入上面的doskey命令,后续如果需要给其他命令做别名替换,也可以把对应doskey规则追加到这个文件里。
    2. 按下Win+R输入regedit打开注册表编辑器,定位到路径:HKEY_CURRENT_USER\Software\Microsoft\Command Processor
    3. 在该项下新建一个字符串值(REG_SZ),名称设为AutoRun,数值数据填写你刚才创建的bat文件的完整路径:C:\Users\username\win_bash\cmd_init.bat
    4. 保存后关闭注册表,后续所有新打开的CMD窗口都会自动加载该别名规则,直接输入echo即可调用UnxUtils版本。

效果验证

配置完成后在CMD中执行:

echo --version

如果输出UnxUtils echo的版本信息,而非直接把--version作为字符串打印出来,说明替换成功。

如果配置后需要临时调用CMD原生内置echo,可通过cmd /c echo 待输出内容的格式绕过别名规则。


不推荐的方案说明

  • 调整PATH顺序:无法绕过内置命令的最高优先级,完全无效。
  • 新建同名echo.bat代理:极易引发递归调用问题,且会拖慢命令执行速度,稳定性差。
  • 修改系统内置命令文件:会触发系统文件保护,且容易造成系统异常,绝对不要操作。

内容的提问来源于stack exchange,提问作者User

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:12:18