Powershell - 如何将多个 URL 添加到 Invoke-Webrequest

Powershell - How do I add multiple URLs to an Invoke-Webrequest

我正在尝试使用 invoke-webrequest 从 URL 下载多个 PDF。我还希望 PDF 具有唯一的名称(我选择的),但要下载到一个文件夹中。

这是我目前得到的(对于 1 url): invoke-webrequest -uri "https://www.website.com/fact.pdf" -Outfile $env:TEMPC:\Users\MyPC\Downloads\TEST.pdf

PS;这实际上是我第一次使用 powershell 并且没有任何线索

编辑:谢谢 - 正是我所追求的。

我想知道你能否进一步帮助我。我必须每天从这些 URL 下载这些 PDF。我已经下载了前一天的 PDF,所以现在我想看看我是否可以 运行 一个脚本,其中:

  1. 创建一个 'archive' 文件夹并将前一天的 pdf(将位于不同的文件夹中)移动到该文件夹​​中
  2. 为新 PDF 设置唯一的名称(您已经使用哈希表向我展示了这一点)
  3. 从 URL 下载 PDF,但将它们放在不同的位置,例如'TEST.pdf' 去 C:\Users\MyPC\Downloads\PDFs\Short 和 'ANOTHER.pdf' 去 C:\Users\MyPC\Downloads\PDFs\Long 等等...

不是最擅长解释的东西,但如果您需要更多信息,我会尝试进一步解释。

提前致谢!

在哈希表中组织您的 URL 及其目标文件名:

$FilesToDownload = @{
    'TEST.pdf' = 'https://www.website.com/fact.pdf'
    'ANOTHER.pdf' = 'https://other.website.com/somethingElse.pdf'
    <# and so on ... #>
}

现在您只需为哈希表中的每个条目重复 Invoke-WebRequest

foreach($file in $FilesToDownload.GetEnumerator()){
    Write-Host "Downloading '$($file.Name)' from '$($file.Value)'"

    # construct output path, then download file
    $outputPath = Join-Path C:\Users\MyPC\Downloads -ChildPath $file.Name
    Invoke-WebRequest -Uri $file.Value -OutFile $outputPath
}