【问题标题】:Run next command in a newly created terminal在新创建的终端中运行下一个命令
【发布时间】:2020-02-12 00:44:15
【问题描述】:

我想在三个单独的终端窗口中运行一个运行三个新命令的命令。但是,我不想引用三个单独的批处理文件。

我意识到我可以运行start 来打开一个新的终端窗口,并且我可以运行start file.bat 来打开一个窗口并运行存储在该批处理文件中的命令。但是,我想将所有内容都保存在同一个文件中。

所以而不是:

start file-1.bat
start file-2.bat
start file-3.bat

我想做:

start [code to run in new window]
start [code to run in new window]
start [code to run in new window]

如果我用&& 链接命令,则会打开一个新终端,但下一个命令会在原始窗口中运行。

【问题讨论】:

    标签: windows command-line command-prompt


    【解决方案1】:

    我能想到的唯一方法是在您自己的批处理文件中使用一些命令行参数并在您希望拆分代码所在的位置添加一些 goto 标签。

    示例“myfile.bat”:

    @echo off
    set thisfile=%~0
    echo Unquoted Param1=%~1
    
    if "%~1" == "jump1" goto jump1
    if "%~1" == "jump2" goto jump2
    if "%~1" == "jump3" goto jump3
    
    start "Title1" "%thisfile%" "jump1"
    start "Title2" "%thisfile%" "jump2"
    start "Title3" "%thisfile%" "jump3"
    
    :jump1
    echo First new console window executes this
    pause
    goto eof
    
    :jump2
    echo Second new console window executes this
    pause
    goto eof
    
    :jump3
    echo Third new console window executes this
    pause
    goto eof
    
    :eof
    

    也许您需要稍微摆弄一下start 命令。请参阅start /? 的语法,尤其是设置执行命令所在目录的/D 参数。如果需要,将路径和文件名分开,%~dp0 仅用于驱动器和路径,%~nx0 用于带扩展名的文件名仅限。
    如果您不想要标题,那么您可能仍要指定 ""start 可能会将 myfile.bat 的路径解释为标题并退出并显示错误消息,因为语法不匹配。
    如果我弄错了,三个终端应该执行相同的代码,而你只想在文件中执行这些代码,而不是删除“jump2”和“jump3”部分并使用“jump1”参数调用每个终端(其中你当然可以重命名)。

    GL,高频 :)

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2021-12-09
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多