我正在尝试创建一个脚本,其中包含多个 wget 命令,这些命令包含站点凭据以下载文件。如果我在命令提示符中单独运行 wget 命令,则文件可以正常下载。
如果我创建一个批处理脚本来包含多个 wget 命令,则所有文件都无法正确下载。我不擅长编写脚本,也没有在网上找到解决方案。是否可以在批处理文件中运行多个 wget 命令?
这是我的批处理脚本的一个示例。
q@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%yyyy%%mm%%dd%
wget -v --http-user="username" --http-password=password "http://server/dira/file:format=PDF" -O "C:\test\%date%file.pdf"
wget -v --http-user="username" --http-password=password "http://server/dirb/file2:format=PDF" -O "C:\test\%date%file.pdf"
答案1
如果你知道要下载的 URL,你可以将下载文件或 URL 存储在文本文件中,然后使用wget -i
选项
这个问题这里发布在 SuperUser 上也可能有帮助
答案2
我会使用 PowerShell。
#Feel free to modify date format via google search
$dateString = Get-Date -f MM-dd-yy
$client = New-Object System.Net.Webclient
$client.Credentials = New-Object System.Net.NetworkCredential("user","pass")
"File1.pdf","File2.pdf","file3.zip" | % {
$path = "http://somesite.com/files/" + $_
$fileName = "C:\downloads\" + ($_).Replace(".zip",($dateString + ".zip"))
$client.DownloadFile($path,$fileName)
}
答案3
如果想使用 wget 下载多个文件,最好的方法是在每行开头添加“start”。例如:
start wget -v --http-user="username" --http-password=password "http://server/dira/file:format=PDF" -O "C:\test\%date%file.pdf
如果想避免每行都打开一个新的 cmd 窗口,请使用 /B 选项。例如:
start /B wget -v --http-user="username" --http-password=password "http://server/dira/file:format=PDF" -O "C:\test\%date%file.pdf