尝试使用PowerShell脚本下载文件时遇到问题:
问题是文件的名称会动态更改,因此我不确定如何定义网址路径。
例如,我想从" http://definitions.symantec.com/defs/jdb/ FILE_NAME "下载文件,但是文件的名称(例如," 2wer123.jdb")每天都在变化。
接下来,您可以看到我目前正在处理的脚本。但是,我不知道如何实现解决动态名称的解决方案。
$source = "http://definitions.symantec.com/defs/jdb/*.jdb";
$dest = "F:\Program Files (x86)\xXXXXXx\xXXXXXx\xXXXx\xXXx\content\incoming\virus_def.jdb";
$secPasswd = ConvertTo-SecureString "adfasfdasfl" -AsPlainText -Force
$myCreds = New-Object System.Management.Automation.PSCredential -ArgumentList "sadfas.sdafasf.sfdasdfaf.sfs.sdfs\Administrator", $secPasswd
$Test = Invoke-WebRequest -Uri $source -OutFile $dest -Proxy 'http:\\sdfs.sdfs.sadfsa:8080' -ProxyCredential $mycreds
答案 0 :(得分:1)
您的脚本无法正常工作,因为您无法通过HTTP使用通配符。 你可以做的是找到一个包含最新文件链接的页面,例如: https://www.symantec.com/security_response/definitions/download/detail.jsp?gid=sep
从那以后,我可以想到两种获取文件名的方法:
答案 1 :(得分:1)
要获取该链接,您需要解析来自this page的当前定义链接,例如Andrey Marchuk suggests
$path = "https://www.symantec.com/security_response/definitions/download/detail.jsp?gid=sep"
$definitionPath = (Invoke-WebRequest $path).Links |
Where-Object{$_.InnerText -like "*.jdb" -and $_.InnerText -notlike "*core*"} |
Select-Object -ExpandProperty href
这是如何使页面上的所有超链接返回一个(??),其链接以“jdb”结尾但不包含“core”(两者都列出)。现在$definitionPath
包含您要查找的路径,现在可以下载。
我相信你需要PowerShell 3.0来实现这一目标。