echo off
:abc
Echo ^ text ^ >> C:/files/text_%random%.txt
goto abc
Как мне сделать goto только 15 раз?
Вместо того, чтобы использовать 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,…, но она не будет использоваться внутри цикла.
Как мне сделать 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