Script em lote para executar vários comandos wget

2

Estou tentando criar um script que tenha vários comandos wget que incluam credenciais de site para baixar um arquivo. Se eu executar o comando wget individualmente em um prompt de comando, o arquivo será baixado corretamente.

Se eu criar um script em lotes para incluir vários comandos wget, nenhum dos arquivos será baixado corretamente. Não sou proficiente em scripts e não encontrei uma solução on-line. É possível executar vários comandos wget dentro de um arquivo de lote?

Este é um exemplo do meu script em lote.

 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"
    
por Rowell 25.07.2012 / 22:07

3 respostas

2

Se você sabe que os URLs dos quais deseja fazer download podem armazenar os arquivos de download ou URLs em um arquivo de texto, use a opção wget -i

Esta questão aqui publicada no SuperUser pode ajudar bem

    
por 25.07.2012 / 22:45
0

Eu usaria o 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)
}
    
por 26.07.2012 / 22:55
0

Se alguém quiser baixar vários arquivos usando wget, a melhor maneira é adicionar "start" no início de cada linha. Como:

start wget -v --http-user="username" --http-password=password "http://server/dira/file:format=PDF" -O "C:\test\%date%file.pdf

Se alguém quiser evitar que cada linha abra uma nova janela cmd, use a opção / B. Como:

start /B wget -v --http-user="username" --http-password=password "http://server/dira/file:format=PDF" -O "C:\test\%date%file.pdf
    
por 09.10.2016 / 03:54