Loops 如何使批处理脚本只循环一定次数?
如何仅将批处理脚本循环一定次数(x10或其他)? 如果代码为:Loops 如何使批处理脚本只循环一定次数?,loops,batch-file,echo,Loops,Batch File,Echo,如何仅将批处理脚本循环一定次数(x10或其他)? 如果代码为: @echo off :loop1 Start taskmgr.exe
@echo off
:loop1
Start taskmgr.exe
Goto loop
:loop2
Start cmd.exe
goto loop2
如何循环loop1和几次并转到loop2
如果您打开命令窗口并键入/,请提供任何有用的答案:)?它将为您提供所需的命令
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)
以下是一个例子:
@echo off
for /L %%a in (1,1,10) do (
Start taskmgr.exe
)
for /L %%a in (1,1,10) do (
Start cmd.exe
)
@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.
出于我忽略的原因,
For
命令对于循环特定标签不起作用。
例如(我可能错了):
这将简单地循环无限次。因此,我找到了另一种简单的方法,可以循环标签任意多次。为此,我创建了一个变量,如loop
,每当标签重复时,该变量的数值会更大
有一个例子:
@echo off
for /L %%a in (1,1,10) do (
Start taskmgr.exe
)
for /L %%a in (1,1,10) do (
Start cmd.exe
)
@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.
输出:
hello world
hello world
This text will appear after repeating "hello world" for 2 times.
说明:
将变量set loop=0
的值设置为0李>loop
每次重复标签set/a loop=%loop%+1
时都会添加1:loop
测试变量如果“%loop%”==“2”转到下一步
是否等于loop
(因此重复了2次);如果它相等,它将转到标签2
,否则它将转到标签:next
:loop
@echo off
for /l %%a in (1,1,10) do (
rem %%a is a variable and starts at a value of 1, steps by 1 and ends at a value of 10
start "Command Prompt #%%a Opened" cmd
rem eg Command Prompt #1 Opened
rem eg Command Prompt #2 Opened
rem etc
)
打开标题为“命令提示符#%%a已打开”的命令提示符。是一个可用于写入的命令。请尝试以下操作:
@echo off
set loopvar=1
:repeat
if %loopvar% gtr 5 (goto :done) else (set /a loopvar=%loopvar%+1 && echo Loop && goto :repeat)
:done
在:done下,编写循环后希望它执行的代码。确保将5替换为希望循环重复的次数。
对于循环中的延迟,请尝试以下操作:
@echo off
set loopvar=1
:repeatwithdelay
if %loopvar% gtr 5 (goto :done) else (set /a loopvar=%loopvar%+1 && timeout /T 1 >nul && echo Loop && goto :repeatwithdelay)
希望有帮助 在您的第一个代码中,可能存在重复的被剪断的代码将
转到循环
替换为调用:循环
(注意::
对于转到
是可选的,但是调用
需要它)并且它会起作用。这两种方法都是多年前建议的。您的答案如何增加附加值?我只是使用了一些批处理文件中的一个示例。@Stephan对于和循环变量引用,没有这样的示例