在新创建的终端中运行下一个命令

问题描述 投票:0回答:1

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

我意识到我可以运行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个回答
0
投票

我唯一能想到的是,当您在自己的批处理文件中使用某些命令行参数,并在想要分割的代码处添加一些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,HF:)

© www.soinside.com 2019 - 2024. All rights reserved.