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"
我通过批处理脚本添加了一个 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"