DOSKEY 别名在批处理脚本中不起作用 (Windows 7)

DOSKEY alias does not work in batch script (Windows 7)

我通过批处理脚本添加了一个 DOSKEY 别名 (script1.bat) 并尝试在另一个批处理脚本中调用它。它不起作用。

script1.bat:

set USER_SETTINGS=%DRIVE%\programme\settings.xml
DOSKEY mvn=mvn --settings %USER_SETTINGS% -X $*

script2.bat:

mvn clean install

当我从控制台调用 mvn clean install 时,它起作用了。调试输出即将到来。当我从同一个控制台调用 script2.bat 时,没有调试输出。

有人能帮忙吗?

如果您通过 doskey /? 显示 doskey 帮助,您会得到如下信息:"Recall and edit commands at the DOS prompt, and create macros"。批处理文件 不是 DOS 提示符:DOSKEY 命令与 作为输入按下的键一起工作 ,例如箭头或 F7 键。

因此,下一个代码应该可以工作:

script2.bat:

@if (@CodeSection == @Batch) @then


@echo off

rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Send the keys with the DOSKEY macro name:
%SendKeys% "mvn clean install{ENTER}"

goto :EOF


@end


// JScript section


WshShell.SendKeys(WScript.CreateObject("WScript.Shell").Arguments(0));

更多详情请见 Press Keyboard keys using a batch file

  • doskey 在批处理文件中有效

  • 可能是你的doskey字符串不起作用

例如,尝试 运行 这个文件,junk.bat :

doskey m=echo hi
cmd /k "echo try typing m now"