- @echo off
- ::本地变量开启,不开启无法在FOR里使用set /a
- setlocal enabledelayedexpansion
- ::总地址,自行修改
- set us1=http://tkpic.tukucc.com/4700/20140913/c_
- ::开始地址,自行修改
- set us2=170730
- ::结束地址,自行修改
- set us3=170749
- ::名称,自行修改
- set name1=斗罗大陆
- ::类型,不用改,除非下载的不是图片,但如果不是图片不保证能正常使用
- set type1=漫画
- set a1=9
- set a2=99
- for /l %%b in (%us2%,1,%us3%) do (
- ::当前卷本话,自行修改
- set /a num2=us2-170718
- echo.
- echo 现在处理!num2!
- ::文件名少于两位数,开头加a排序,不用改,除非有强逼症喜欢全数字,但改后不保证能正常运行
- if "!num2!" LSS "!a1!" (set zf=a) else if /i "!num2!" LEQ "!a2!" (set zf=b) else set zf=c
- echo !num2!
- echo !a1!
- echo !zf!
- pause
- echo.
- set /p pnum=页数最大值
- echo ^<pre^>>>"%name1% %type1% !zf!%num2%.html"
- for /l %%a in (1,1,!pnum!) do (
- ::文件名默认是三位数的,数量少于10,开头加00排序,如果某些文件名不足三位数,如01,02,自行修改去掉一个0
- if /i "!pnum!" LEQ "9" (set num1=00) else (if /i "!pnum!" LEQ "99" (set num1=0) else (set num1=""))
- echo ^<img src^=^"%us1%%%b/%num1%%%a.jpg^"^>>>"%name1% %type1% !zf!%num2%.html"
- set /a us2+=1
- echo !us2!
- pause
- )
- echo ^<^/pre^>>>"%name1% %type1% !zf!%num2%.html"
- echo.
- echo 刚刚完全 %num2%
- )
-
- pause
复制代码 已知问题所在
if "!num2!" LSS "!a1!" (set zf=a) else if /i "!num2!" LEQ "!a2!" (set zf=b) else set zf=c
if /i "!pnum!" LEQ "9" (set num1=00) else (if /i "!pnum!" LEQ "99" (set num1=0) else (set num1=""))
此两行代码想到的和百度到的都试过了,就是不行
问题1:"!num2!"和"!pnum!"大于9为真时zf依然是a
问题2:修改后!num2!"和"!pnum!"大于9为真时zf是b,但同时不知为何会判断是大于99为真,接着zf变成c
管理员说:开启变量,用!!依然未解决
5楼说:补位法,问题解决
就是不知道为何在FOR里IF后SET会出现问题
虽然用补位解决了FOR里IF的问题,但是却出现了另一外问题,在FOR外面的IF竟然失效了
另外,我自己发 的帖,如果是已解决,我竟然没权限看,为什么啊……
问题所在:
1,代码问题
2,系统问题,代码屡次修改后在实体机WIN8仍出问题,心血来潮在虚拟机XP测试,成功!成功代码在最后自己的回复里!
@Batcher |