创建批处理文件以下载多个URL

时间:2013-04-13 05:06:38

标签: windows variables batch-file cmd

下载程序为download.exe

@echo off
set /p %d% `enter file to load here`
download.exe -u www.xyz.com/1s21.zip -o 1s21.zip
download.exe -u www.xyz.com/1s22.zip -o 1s22.zip
download.exe -u www.xyz.com/1d23.zip -o 1d23.zip
download.exe -u www.xyz.com/1411.zip -o 1411.zip
download.exe -u www.xyz.com/%d%.zip -o %d%.zip
....
...
..
.

我可以使用变量%d%来加载来自另一个文件的名称,这样我就不用再写整个程序了吗?

%d%文件的结构看起来像这样

1s21
1s22
1s23
...
..
.

我想要的是读取包含名称的文件并将这些名称插入下载脚本。

2 个答案:

答案 0 :(得分:1)

@echo off
for /f %%i in (filename) do download.exe -u www.xyz.com/%%i -o %%i

这将做你想要的。

的正常情况
for %%i in (item1 item2 item3)

从括号

之间读取列表

/f选项告诉它括号之间存在文件名,必须从文件中读取列表。

对于列表中的每个项目,将调用do之后的部分。

这假设文件的每一行只有一个文件名。

此外,如果您需要为列表中的每个项目执行多个命令,则可以执行

for /f %%i in (filename) do (
first command
second command
)

使用此示例调试您的问题

C:\tmp>type names.txt
kd11
kd12

C:\tmp>type down.bat
@echo off
setlocal EnableExtensions
for /f %%i in (names.txt) do echo %%i

C:\tmp>down.bat
kd11
kd12

如果上述方法有效,则将for更改为

for /f %%i in (names.txt) do download.exe -u www.xyz.com/%%i -o %%i

答案 1 :(得分:1)

尝试:

for /f "delims=" %%i in (names.txt) do download.exe -u "www.xyz.com/%%~i.zip" -o "%%~i.zip"