首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您可以从批处理文件向命令行历史记录中添加条目吗?

您可以从批处理文件向命令行历史记录中添加条目吗?
EN

Stack Overflow用户
提问于 2018-10-03 20:20:42
回答 1查看 723关注 0票数 3

在一个命令中编译和执行Windows cmd中任何编程语言的源代码可能会很麻烦,因为这通常是一个大命令,您必须至少键入一次,然后才能在命令历史记录中使用向上箭头或F7键访问它。

例如,编译和执行Java的命令通常如下所示:

代码语言:javascript
复制
cls & javac packagename\Class.java && java packagename.Class

为了方便起见,我创建了一个批处理文件,它接受用户输入并回显完整的命令。

然后,您可以复制该行,粘贴它并执行一次,然后它就会出现在您的命令历史记录中,可以通过向上箭头快速访问。

我想进一步简化最后一步,并将批处理文件创建的命令直接推送到命令历史记录中,但我找不到这样做的方法。

即使使用@echo on,批处理文件执行的任何命令都不会进入用户的历史记录。

Doskey的帮助没有提到任何关于添加历史项目的内容。

有人能想出一个解决方案吗?

解决方法

作为一种解决方法,我在批处理文件中注册了一个带有doskey的宏:

代码语言:javascript
复制
doskey jc=cls ^& javac packagename\Class.java ^&^& java packagename.Class

然后,一旦您运行了批处理文件,您只需要输入jc来执行整个命令。

这已经很方便了,所以如果找不到解决方案,我将继续使用它。

EN

回答 1

Stack Overflow用户

发布于 2018-10-04 09:34:57

您可以使用修改后的this method版本

代码语言:javascript
复制
@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));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52626920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档