Esse método usa o PowerShell versão 2 em diante compatível e usa a classe System.Net.WebClient.
Cria uma matriz e adiciona URLs obrigatórios à matriz. Especifique seu local de download e, em seguida, para cada item em sua matriz, gere um nome de arquivo que o parâmetro de arquivo System.Net.WebClient requer usando o PowerShell -Split Operator para a sequência da última ocorrência da barra.
$Urls = @()
$Urls += "https://your/first/download/path/.ext"
$Urls += "https://your/next/download/path/.ext"
$OutPath = "C:\Path\to\download\"
ForEach ( $item in $Urls) {
$file = $OutPath + ($item).split('/')[-1]
(New-Object System.Net.WebClient).DownloadFile($item, $file)
}
Como alternativa, use o Invoke-WebRequest como o comentário do @ McDonald ou o apelido Invoke-WebRequest que estão disponíveis na versão 3 do PowerShell , mas podem ser mais lentos
$Urls = @()
$Urls += "https://your/first/download/path/.ext"
$Urls += "https://your/next/download/path/.ext"
$OutPath = "C:\Path\to\download\"
ForEach ( $item in $Urls) {
$file = $OutPath + ($item).split('/')[-1]
Invoke-WebRequest -Uri $i -Outfile $file
}
Salvar o script como "C: \ Path \ para \ download_script.ps1"
crie e execute o arquivo .bat com o conteúdo
PowerShell -File "C:\Path\to\download_script.ps1"
ou execute o arquivo .ps1 do PowerShell
EDITAR Para acomodar seu comentário em minha resposta, você pode alterar a matriz em uma matriz de várias colunas e chamar o título do item como a. atributo
$Urls = @()
$item = "" | Select path,outpath,name
$item.path = "https://your/first/download/path/.ext"
$item.outpath = "C:\Path\to\download\"
$item.name = "Name1.ext"
$Urls = $Urls + $item
$item = "" | Select path,outpath,name
$item.path = "https://your/next/download/path/.ext"
$item.outpath = "C:\Path\to\download\"
$item.name = "Name2.ext"
$Urls = $Urls + $item
ForEach ( $item in $Urls) {
$file = ($item.outpath) + ($item.name)
(New-Object System.Net.WebClient).DownloadFile($item.path, $file)
}