Сейчас я работаю над сценарием, который печатает все числа от 000 до 999. я пытался что-то вроде этого:Тройная вложенная петля?
@echo off
set "nums=1,2,3,4,5,6,7,8,9,0"
for %%a in (%nums%) do (
for %%b in (%nums%) do (
for %%c in (%nums%) do echo %%a%%b%%c
)
)
pause
Но выходные номера incomlete и в странном порядке. После нескольких часов reflextion, я сделал этот сценарий:
@echo off
echo list of nums: > nums.txt
set fstnum=0
set secnum=0
set trdnum=0
goto astrt
:strt:
set /a "fstnum=%fstnum% + 1"
:astrt:
echo %trdnum%%secnum%%fstnum% >> nums.txt
if /i %trdnum%==9 (if %secnum%==9 if %fstnum%==9 exit) else (goto next)
:next:
if /i %secnum%==9 (goto ak) else (goto nnxxtt)
:nnxxtt:
if /i %fstnum%==9 (goto nd) else (goto strt)
:nd:
set fstnum=0
set /a "secnum=%secnum% + 1"
goto astrt
:ak:
if /i %fstnum%==9 (goto nkst) else (goto strt)
:nkst:
set secnum=0
set fstnum=0
set /a "trdnum=%trdnum% + 1"
goto astrt
Теперь все отлично работает, но мне интересно, почему тройная вложенная for
петля не работает. Есть идеи?
Этикетки должны быть указаны как ': Label' вместо': Label: '... – aschipfl