use*_*763 4 loops batch-file echo
如何只将批处理脚本循环一定次数(x10或类似的次数)?如果代码是:
@echo off
:loop1
Start taskmgr.exe
Goto loop
:loop2
Start cmd.exe
goto loop2
Run Code Online (Sandbox Code Playgroud)
如何循环loop1几次并转到loop2?
任何有用的答案将不胜感激:)
如果打开命令窗口并键入FOR /?它会为您提供所需的命令。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
@echo off
for /L %%a in (1,1,10) do (
Start taskmgr.exe
)
for /L %%a in (1,1,10) do (
Start cmd.exe
)
Run Code Online (Sandbox Code Playgroud)
小智 5
由于我忽略的原因,该FOR命令不适用于循环特定标签。例如(我可能错了):
@echo off
for /L %%a in (1,1,2) do (
goto loop
)
:loop
echo this won't loop for 2 times.
Run Code Online (Sandbox Code Playgroud)
这将简单地循环无限次。所以,我找到了一种替代的简单方法,可以根据需要多次循环标签。为此,我创建了一个变量,这样loop每次标签重复时都会有一个更大的数字。
有一个例子:
@echo off
set loop=0
:loop
echo hello world
set /a loop=%loop%+1
if "%loop%"=="2" goto next
goto loop
:next
echo This text will appear after repeating "hello world" for 2 times.
Run Code Online (Sandbox Code Playgroud)
输出:
hello world
hello world
This text will appear after repeating "hello world" for 2 times.
Run Code Online (Sandbox Code Playgroud)
解释:
set loop=0将变量的值设置loop为 0;set /a loop=%loop%+1每次:loop重复标签时加 1 。if "%loop%"=="2" goto next测试变量loop是否等于2(因此重复了 2 次);如果相等,则转到 label :next,否则转到 label :loop。