0

这个脚本有什么问题?

@echo off

SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

set /P start= Input start : %=%
set /P end= Input End : %=%

for /l %%i IN (%start%,1,%end%) DO (
    set num=0%%i
    set num=!num:~-2!
    echo wget "http://portal/excel!num!.xls"
)
pause

如果Input start = 01, Input End = 06, 工作正常并下载 excel 文件。结果 :

Input start : 01
Input End : 12
wget "http://portal/excel01.xls"
wget "http://portal/excel02.xls"
wget "http://portal/excel03.xls"
wget "http://portal/excel04.xls"
wget "http://portal/excel05.xls"
wget "http://portal/excel06.xls"
wget "http://portal/excel07.xls"
wget "http://portal/excel08.xls"
wget "http://portal/excel09.xls"
wget "http://portal/excel10.xls"
Press any key to continue . . .

但是如果Input start = 01,Input End = 08或者 如果Input start = 01, Input End = 09, 不能正常工作并且没有下载 excel 文件。结果 :

Input start : 01
Input End : 08
Press any key to continue . . .

谁能给出一些解释?

4

2 回答 2

3

前导零表示数字被解释为八进制。0-7 无关紧要,但没有像八进制 8 或 9 这样的数字。您已经使用 2 个 SET 命令添加了前导 0,因此不要输入前导零。

于 2013-08-28T02:53:43.353 回答
2

这是一种解决方法:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION    
set start=101
set end=199

for /l %%i IN (%start%,1,%end%) DO (
     set num=!num:~-2!
    echo wget "http://portal/excel!num!.xls"
)
于 2013-08-28T07:55:45.483 回答