下载程序为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
...
..
.
我想要的是读取包含名称的文件并将这些名称插入下载脚本。
答案 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"