-2

ダウンローダーは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
...
..
.

私が望むのは、名前を含むファイルを読み取り、それらの名前をダウンロード スクリプトに挿入することです。

4

2 に答える 2

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が呼び出されます。

これは、ファイルの 1 行に 1 つのファイル名しかないことを前提としています。

また、リスト内の各項目に対して実行する必要があるコマンドが複数ある場合は、次のことができます。

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
于 2013-04-13T05:13:58.157 に答える