Utilitário para baixar e renomear um monte de arquivos?

0

Este script Bash é bom para baixar apenas alguns arquivos, mas eu preciso baixar mais de uma centena de eles. O VisualWGet é capaz de baixar um arquivo de arquivos, mas não consegue renomeá-los.

Alguém sabe de um utilitário do Windows que usaria uma lista de texto de duas colunas em que a coluna 1 conteria o URL completo do arquivo, e a coluna 2 conteria o nome a ser usado para renomear?

    
por OverTheRainbow 08.04.2011 / 14:32

4 respostas

0

Você também pode usar o Download Accelerator Plus (DAP) para fazer o download e renomear.

Você só precisa criar uma lista de DAP, importá-la para o aplicativo, selecionar a pasta em que deseja salvar os arquivos e deixar que ela funcione.

Para criar uma lista de DAP, basta abrir um editor de texto e digitar o seguinte para cada arquivo que você deseja baixar:

<filelist_index><fileinfo>
    <filename>FILENAME.EXT</filename>
    <url>FULL_URL_TO_FILE</url>
</fileinfo></filelist_index>

Substitua FILENAME.EXT pelo nome do arquivo que você deseja (não esqueça o arquivo EXTENSION). Basta usar o MS Excel para consolidar o código e copiá-los e colá-los em um arquivo de texto e salvá-lo como um arquivo XXX.DAP. Veja uma planilha de exemplo: link

    
por 08.04.2011 / 15:37
1

Ou, usando o windows powershell ...

$folder = "D:\Output\"
$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
$web = New-Object System.Net.WebClient
$web.Headers.Add("user-agent", $userAgent)
$input = "D:\todownload.txt"
$delimit = " "

Get-Content $input |
    Foreach-Object { 
        $line = $_.split($delimit);
        $destination_file = ([io.path]::getfilename($line[1]))
        "[" + $destination_file  + "]" + "Downloading " + $line[0]
        try {
            $target = join-path $folder $destination_file
            $web.DownloadFile($line[0], $target)
        } catch {
            $_.Exception.Message + ": " + $destination_file
            add-content (join-path $folder ("downloader" + ".log")) ("[" + $destination_file + "] " + $_.Exception.Message)
            add-content (join-path $folder ("downloader" + ".retry")) ($line -join " ")
        }
    }

O arquivo de entrada (todownload.txt) está no formato:

http://path.to.download.com/file.jpg 0001_NewFileName_file.jpg
    
por 01.07.2012 / 21:11
0

Você pode dar uma chance à extensão do Firefox DownThemAll! . Ele pode baixar vários links de uma página, você pode filtrar a lista de download e também aplicar um padrão de renomeação.

    
por 08.04.2011 / 14:42
0

perl -MLWP::Simple -n -e '($u,$n)=split;getstore($u,$n)' filenames.txt

(testado OK)

onde filenames.txt contém algo como

http://foo.com/a/b?parm=x   this.dat
http://bar.org//d/e/f.html  that.html

O mesmo script em formato longo

#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;

open my $fh, '<', "filenames.txt" or die "can't read filenames.txt because $!\n";
while () {
  my ($url, $newname) = split;
  getstore($url, $newname);
}

(não testado)

    
por 08.04.2011 / 15:24