如何从特定行启动批处理文件?有什么办法吗?
我的batch-file
:start
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 1\test 1.vmx"
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 2\test 2.vmx"
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 3\test 3.vmx"
goto start例如,我想从第3行开始创建batch-file。
对不起,我会尽量澄清。我的文件中有3个命令
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 1\test 1.vmx"
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 2\test 2.vmx"
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 3\test 3.vmx"当我想从G:\Virtual Machines\test 2\test 2.vmx启动这个批处理时,脚本正在启动,但跳过了一些命令。我想要开始我的批处理文件,例如从第3行开始。我试着用cli a file.bat 3写,但它不工作。不管是从第一行开始的。
发布于 2020-07-16 15:47:53
你不清楚这些条件,所以我向你展示了一种你可以随意修改的方法。
以下内容是有条件的,它取决于您输入到批处理文件的标准输入。您拥有的选项包括:
仅运行VMX1
batch_file.cmd 1仅运行VMX2
batch_file.cmd 2仅运行VMX3
batch_file.cmd 3运行所有VMX一次
batch_file.cmd all在一个永久循环中运行所有的VMX(不知道你为什么要这样做)
batch_file.cmd all loop然后我们就有了代码。这真的很简单。在大多数情况下,它只计算%1,这将决定批处理文件的起始位置。%2只计算一次,在脚本的末尾,在本例中是在需要时循环。
@echo off
goto vmx%~1
:start
:vmxall
:vmx1
echo vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 1\test 1.vmx"
if /i not "%~1" == "all" exit /b
:vmx2
echo vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 2\test 2.vmx"
if /i not "%~1" == "all" exit /b
:vmx3
echo vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 3\test 3.vmx"
if /i not "%~1" == "all" exit /b
if /i "%~1" == "all" if /i "%~2" == "loop" goto :start
exit /b
:vmx
echo You did not supply any arguments & pause发布于 2020-07-16 15:26:31
批处理文件中的标签可以实现您想要的功能。
如果您希望代码仅为第三个vmrun命令执行,您可以尝试此命令:
goto open
:start
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 1\test 1.vmx"
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 2\test 2.vmx"
:open
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 3\test 3.vmx"
exit /b
goto start或者您也可以尝试这样做,以防您希望代码先为第三个vmrun命令执行,然后为其余两个vmx命令执行:
goto open
:start
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 1\test 1.vmx"
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 2\test 2.vmx"
exit /b
:open
vmrun -T ws -gu "User" -gp "1" start "G:\Virtual Machines\test 3\test 3.vmx"
goto starthttps://stackoverflow.com/questions/62928844
复制相似问题