我想在三个单独的终端窗口中运行一个运行三个新命令的命令。但是,我不想引用三个单独的批处理文件。
我意识到我可以运行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]
如果我用&&
链接命令,则会打开一个新终端,但是下一个命令在原始窗口中运行。
答案 0 :(得分: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
分隔路径和文件名,仅将驱动器和路径与{{ 1}}仅用于扩展名的文件名。
如果您不想要标题,那么您可能想要指定%~nx0
不变,或者""
可能会将start
的路径解释为标题,并退出并显示错误消息,因为语法不是匹配。
如果我弄错了,并且三个终端应该只执行相同的代码(您只想将其包含在文件中),则不只是删除“ jump2”和“ jump3”部分,并使用“ jump1”参数调用每个终端(您当然可以重命名)。
GL,HF:)