重复goto只有15次


0
echo off
:abc
Echo ^ text ^ >> C:/files/text_%random%.txt
goto abc

我怎么做goto15次?

Answers:


3

goto您应该使用for循环,而不是多次使用。

在这里,您可以指定循环应运行15次。

echo off 
SETLOCAL ENABLEDELAYEDEXPANSION
for /L %%i in (1,1,15) do (Echo ^ text ^ >> C:/files/text_!random!.txt)

变量%%i将等于1,2,...,但它不会在循环内使用。


Akina,如果你的答案不仅仅是一段代码,而且如果你解释了你为了摆脱goto陈述而做了什么,以及为什么你的答案更好,这将是一件好事。
slhck

@slhck我解决了任务而不是编辑作者的解决方案。这不是一个学习任务,使用goto不是教条。我想是这样的...
Akina

2
我的意思是,在Stack Exchange上,我们更喜欢给出一些解释的答案,而不仅仅是发布一段代码。如果其他人碰巧找到了答案,他们可能会从中学到一些东西(例如,为什么for在这种情况下循环更好?)。
slhck

@slhck英语不是我的母语,所以我很难为新手解释这些事情。当我尝试这样做时,我获得了“专家级”的解释 - 但这些专家没有任何问题需要理解。
Akina

希望将是某种帮助/参考..(:
p._phidot_

0

我怎么做goto只有15次?

FOR /L %%v in (start, step, end) do *something*你会做你需要的,但是如果你喜欢使用GOTO来完成这个任务,你可以先设置一个等于起始值的变量,然后在每次执行重复操作时增加(或减少)它,每次测试是否已达到最终价值。请注意,您可以echo off使用@符号开始一行,以防止它回显到控制台。

@echo off
set numval=0
REM you can use a variable or else a magic number in the loop
set endval=15
:abc
Echo ^ text ^ >> C:/files/text_%random%.txt
set /a numval +=1
if %numval% lss %endval% goto abc
REM or if %numval% lss 15 goto abc
echo Done 15 times
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.