.bat打开一个Windows命令提示符并使用命令

时间:2017-01-27 06:51:23

标签: batch-file console

我有一个cygwin脚本,我需要在Windows命令提示符下启动命令。该命令非常复杂(许多参数)。我这样做的方法是从cygwin写一个.bat文件,我把命令放到.bat并使用命令' cygstart" $ WINDIR \ explorer.exe" " myBat.bat"&#39 ;.

问题是在打开的cmd中,我希望用户能够再次运行该命令,最终更改其中一个参数。但该命令并未保留在历史中。

如果Windows命令提示符支持以编程方式更新命令的历史记录,我会在.bat文件中添加历史命令,然后再调用它,这样可以保存我。但是没有这样的支持。

所以我看到的唯一选择是让.bat文件只用命令填充新打开的控制台,让用户按Enter键执行它。这将在历史记录中添加该命令,并使其可供将来使用。

这可能吗?

2 个答案:

答案 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