首页 文章

.bat打开一个Windows命令提示符并使用命令准备控制台

提问于
浏览
0

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

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

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

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

这可能吗?

2 回答

  • 0

    尝试导出命令以作为环境变量执行,在Windows中我们设置了导出变量的命令 .

    这个想法如下:

    @echo
    set "command=echo something"
    echo something
    echo To reuse command type %command%
    

    就像你应该能够使用 %command% 作为缩写,更容易记住替代你的长命令 .

  • 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 .

相关问题