好的,我正在尝试从与PowerShell一起使用的网络链接下载文件。我正在下载一个zip文件,其中名称的开头始终相同,但中间部分将根据zip的版本号进行更改。当我使用完全限定的Web地址并将文件名硬编码到脚本中时,我能够获取要下载的文件。我已经尝试使用通配符的每个版本来获取所有最常见的zip版本,但它错误地说它无法在服务器上找到该文件。这是我已经拥有的代码,任何帮助都会受到极大的赞赏,因为我觉得我已经在墙上了。
$url = 'http://blah/blah/blah/My File Name 11.1111.11.zip'
$localFileName = 'C:\temp\MYzip.zip'
Invoke-WebRequest $url -UseDefaultCredentials -OutFile $localFileName
答案 0 :(得分:4)
如果网站启用了目录浏览(除非您拥有对网站的控制权并且可以将其打开),否则您可以执行以下操作:
$url = 'http://blah/blah/blah/'
$wr = iwr $url
$filename = $wr.Links.href | Where {$_ -match 'My File Name.*?\.zip'}
$wr = iwr "$url/$filename"
如果网站没有启用目录浏览,那么它肯定有一个页面,上面有ZIP文件的链接。下载该页面并使用相同的$wr.Links.href
技巧获取所有链接,并查找与“我的文件名。*?。zip”匹配的链接。