我试图创建一个从FTP站点的所有链接的列表。链接是用来下载zip文件。
我的最终目标是将每个链接分析为一个字符串,并将开头与一个集合短语相匹配。每个链接的末尾包含一个日期,我必须找到最新的一个下载。
在这个例子中,我想从这个列表中找到ABC_20170323.zip:
在分析之前,我需要弄清楚如何获取链接。我尝试过各种方法,唯一从站点返回任何信息的方法是收集源代码:
Invoke-WebRequest $sourceuri -UseBasicParsing -Credential $user但是我发现很难从那里收集所有的链接。有谁有一种方法可以轻松获取这些文件下载链接?
发布于 2017-08-16 19:00:05
好吧,我知道已经很久了,但我想好了该怎么做。无可否认,这是一条艰难的道路。最终发生的事情是我收集了源代码并按如下方式保存:
$r = Invoke-WebRequest $sourceuri -UseBasicParsing -credential $user然后,我将其转换为一个字符串,并使用-split通过它们的html标记和我所期望的开头样子(在本例中为‘ABC’)来分离链接:
$c = $r.ToString() #convert to string
$datelist = @()
$f = ($c -split 'A HREF="' -split '.zip</A>') #split by html tag (and .zip)
foreach($link in $f){
if($link -match 'ABC') { #if the beginning of the link is 'ABC'
$datelist += ($link.substring($link.Length-8)) #isolate the date on the end
}
} #more logic for comparing $datelist items...然后,我编写了一些逻辑,用于比较$datelist中的项(从答案中导出),并创建了一个变量,其中包含了我需要的所有组件:
$ExactLink = "ABC_$GreatestDate" + ".zip"然后继续下载我需要的$ExactLink。
https://stackoverflow.com/questions/43001627
复制相似问题