PowerShell从FTP站点获取链接

时间:2017-03-24 14:07:55

标签: powershell hyperlink ftp

我尝试创建FTP站点中所有链接的列表。链接是下载zip文件。

我的最终目标是将每个链接分析为字符串,并将开头与设置短语相匹配。每个链接的结尾都包含一个日期,我必须找到要下载的最新版本。

在此示例中,我想从此列表中找到ABC_20170323.zip

  • ABC_20170323.zip
  • ABC_20160102.zip
  • EFG_20170324.zip

我需要弄清楚如何在分析之前获取链接。我尝试了各种方法,唯一从网站上返回任何信息的方法是收集源代码:

Invoke-WebRequest $sourceuri -UseBasicParsing -Credential $user

但后来我发现从那里收集所有链接很困难。任何人都有方法轻松获取这些文件下载链接?

1 个答案:

答案 0 :(得分:0)

好的,所以我知道它已经很久了,但我想出了怎么做。不可否认,这是艰难的方式。最终发生的事情是我收集了源代码并保存它:

$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