我目前正在编写一个脚本,打印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
但输出数字是紧凑的,并且处于一种奇怪的顺序。 经过几个小时的反思,我制作了这个剧本:
@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
循环不起作用。有什么想法吗?
答案 0 :(得分:1)
你的循环完全按照声明的方式执行。但是由于初始化不正确,结果可能不是您的预期。
如果您只是将sftp.exec_command('pwd')
声明更改为
%nums%
您将按照通常的基本顺序获得结果字符串:000,001,002,... 998,999。
答案 1 :(得分:1)
还有另一种方式:
{
path: ':region-slug',
component: RegionComponent,
resolve: {
region: RegionResolver
}
}
您可以随意调整数字。
此循环变为0到999,增量为1,在数字前面加上两个零,并打印3个右侧数字。
如您所述,结果将是000到999.