我有一个cygwin脚本,我需要在Windows命令提示符下启动命令。该命令非常复杂(许多参数)。我这样做的方法是从cygwin写一个.bat文件,我把命令放到.bat并使用命令' cygstart" $ WINDIR \ explorer.exe" " myBat.bat"&#39 ;.
问题是在打开的cmd中,我希望用户能够再次运行该命令,最终更改其中一个参数。但该命令并未保留在历史中。
如果Windows命令提示符支持以编程方式更新命令的历史记录,我会在.bat文件中添加历史命令,然后再调用它,这样可以保存我。但是没有这样的支持。
所以我看到的唯一选择是让.bat文件只用命令填充新打开的控制台,让用户按Enter键执行它。这将在历史记录中添加该命令,并使其可供将来使用。
这可能吗?
答案 0 :(得分:0)
尝试导出命令以作为环境变量执行,在Windows中我们设置了导出变量的命令。
这个想法如下:
@echo
set "command=echo something"
echo something
echo To reuse command type %command%
就像你应该能够使用%command%
作为缩写,更容易记住替代你的长命令。
答案 1 :(得分:0)
if (@CodeSection == @Batch) @then
@echo off
rem Enter the prefill value in the keyboard buffer
CScript //nologo //E:JScript "%~F0" "Your long command goes here"
goto :EOF
@end
WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0));
如果您想执行该行(除了将其包含在历史记录中),只需在命令末尾添加{ENTER}
部分即可。有关详情,请访问this answer。有关更多SendKeys密钥,请参阅here。