在一个命令中编译和执行Windows cmd中任何编程语言的源代码可能会很麻烦,因为这通常是一个大命令,您必须至少键入一次,然后才能在命令历史记录中使用向上箭头或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来执行整个命令。
这已经很方便了,所以如果找不到解决方案,我将继续使用它。
发布于 2018-10-04 09:34:57
您可以使用修改后的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));https://stackoverflow.com/questions/52626920
复制相似问题