以下代码可从网站下载文件:https://www.mcafee.com/enterprise/en-us/downloads/security-updates.html
但是,文件名每天都在更改。例如:“今日”(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)如果您需要进一步的澄清,请告诉我。
注意:寻找没有调用-WebRequest的解决方案,因为这在我当前的环境中是行不通的。
发布于 2022-05-24 07:58:39
$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/"发布于 2022-05-24 05:40:51
似乎我们可以假设最后列出的文件总是最新的,不能确认这是否总是正确的--它可能会在某个时候发生变化。目前,您可以通过以下方式获得最后一个文件:
$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中工作。
https://stackoverflow.com/questions/72357535
复制相似问题