在一个命令中为Windows cmd中的任何编程语言编译和执行源代码都会很麻烦,因为通常这是一个大命令,您至少必须键入一次,然后在命令历史记录中使用Up-箭头或F7。
例如,用于编译和执行Java的命令通常如下所示:
cls & javac packagename\Class.java && java packagename.Class
为方便起见,我创建了一个批处理文件,该文件接受用户输入并回显完整的命令。
然后,您可以复制该行,将其粘贴并执行一次,然后它就在您的命令历史记录中,可以通过向上箭头快速访问。
我想进一步简化最后一步,并将批处理文件创建的命令直接推送到您的命令历史记录中,但是我找不到解决方法。
即使使用@echo on
,批处理文件执行的命令也不会输入用户的历史记录。
Doskey的帮助没有提及添加历史记录项目。
有人能想到解决方案吗?
作为一种解决方法,我在批处理文件中的doskey中注册了一个宏:
doskey jc=cls ^& javac packagename\Class.java ^&^& java packagename.Class
然后,运行批处理文件后,只需键入jc即可执行整个命令。
这已经很方便了,因此,如果找不到解决方案,我将继续使用它。
答案 0 :(得分:1)
您可以使用this method的修改版本:
@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 to the keyboard buffer the desired line
%SendKeys% "cls & javac packagename\Class.java && java packagename.Class{ENTER}"
rem Read it, so it is inserted in the command-line history
set /P "="
goto :EOF
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));