运行多个 wget 命令的批处理脚本

运行多个 wget 命令的批处理脚本

我正在尝试创建一个脚本,其中包含多个 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

相关内容