每天更改文件名的 PowerShell DownloadFile
PowerShell DownloadFile for File name Changing every day
使用以下代码从网站下载文件:
https://www.mcafee.com/enterprise/en-us/downloads/security-updates.html
File being downloaded
但是,文件名每天都在变化。例如:'mediumepo4981dat.zip' 今天和 'mediumepo4980dat.zip' 昨天。
我如何创建一个我可以每天 运行 动态运行的脚本?
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$uri = "https://download.nai.com/products/datfiles/med/mediumepo4981dat.zip"
$filename = "C:\DownloadTest\mediumepo4981dat.zip"
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$wc.DownloadFile($uri, $filename)
如果您需要进一步说明,请告诉我。
注意:寻找没有 Invoke-WebRequest 的解决方案,因为它在我当前的环境中不起作用。
似乎我们可以假设 列出的最后一个文件始终是最新的,无法确认这是否总是正确的,它可能会在某些时候发生变化。目前,这是您获取最后一个文件的方式:
$uri = [uri] "https://download.nai.com/products/datfiles/med"
$wr = Invoke-WebRequest $uri
$file = $wr.ParsedHtml.getElementsByTagName('a') |
Select-Object -Last 1 -ExpandProperty TextContent
$toDownload = [uri]::new($uri, $file)
现在您可以将其与脚本的其余部分结合起来:
$filename = Join-Path 'C:\DownloadTest\' -ChildPath $file
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$wc.DownloadFile($toDownload.AbsoluteUri, $filename)
请注意,这仅适用于 Windows PowerShell。
$uri = [uri] "https://download.nai.com/products/datfiles/med"
$wr = Invoke-WebRequest $uri
$file = $wr.ParsedHtml.getElementsByTagName('a') |
Select-Object -Last 1 -ExpandProperty TextContent
$toDownload = [uri]::new($uri, $file)
$uri 中缺少结尾的“/”。
应该是
$uri = [uri] "https://download.nai.com/products/datfiles/med/"
使用以下代码从网站下载文件: https://www.mcafee.com/enterprise/en-us/downloads/security-updates.html
File being downloaded
但是,文件名每天都在变化。例如:'mediumepo4981dat.zip' 今天和 'mediumepo4980dat.zip' 昨天。
我如何创建一个我可以每天 运行 动态运行的脚本?
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$uri = "https://download.nai.com/products/datfiles/med/mediumepo4981dat.zip"
$filename = "C:\DownloadTest\mediumepo4981dat.zip"
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$wc.DownloadFile($uri, $filename)
如果您需要进一步说明,请告诉我。
注意:寻找没有 Invoke-WebRequest 的解决方案,因为它在我当前的环境中不起作用。
似乎我们可以假设 列出的最后一个文件始终是最新的,无法确认这是否总是正确的,它可能会在某些时候发生变化。目前,这是您获取最后一个文件的方式:
$uri = [uri] "https://download.nai.com/products/datfiles/med"
$wr = Invoke-WebRequest $uri
$file = $wr.ParsedHtml.getElementsByTagName('a') |
Select-Object -Last 1 -ExpandProperty TextContent
$toDownload = [uri]::new($uri, $file)
现在您可以将其与脚本的其余部分结合起来:
$filename = Join-Path 'C:\DownloadTest\' -ChildPath $file
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$wc.DownloadFile($toDownload.AbsoluteUri, $filename)
请注意,这仅适用于 Windows PowerShell。
$uri = [uri] "https://download.nai.com/products/datfiles/med"
$wr = Invoke-WebRequest $uri
$file = $wr.ParsedHtml.getElementsByTagName('a') |
Select-Object -Last 1 -ExpandProperty TextContent
$toDownload = [uri]::new($uri, $file)
$uri 中缺少结尾的“/”。 应该是
$uri = [uri] "https://download.nai.com/products/datfiles/med/"