可以使用Powershell列出URL目录的内容吗?

时间:2015-01-14 14:08:06

标签: powershell webclient-download

我们在FTP服务器上托管了一堆zip文件,这些文件也可以通过HTTP访问。我很想做(gci http://test.com/test/ * .zip)之类的内容,并给我网络服务器上存在的所有zip文件。

有没有人知道如何以干净的方式做这样的事情?

TIA

1 个答案:

答案 0 :(得分:5)

invoke-webrequest(PS V3)

非常容易
$r=iwr http://asite.com/test2/ -UseBasicParsing  
$r.Links |?{$_.href -match ".zip"} 

当然,正如+ arco444所述,必须启用目录索引 directory listing


编辑 要获取最后修改的文件,您必须解析HTML,这是一个示例(正则表达式必须添加到您的配置中):

$col=@()
$link,$date,$size=""
$r=iwr http://asite.com/test2/ 
$r.ParsedHtml.body.getElementsByTagName('TR')|%{ 
    $_.getElementsByTagName('TD') |select -expand innerHTML |%{     
        switch -regex ($_){
            "(.)*zip"{ $link = $_;break}
            "\d{2}-...-\d{4}(.)*"{$date=$_;break}
              "^\d*[KM]"    {$size=$_;break }       
            default{}
        }

    }
        if( $link -and $date -and $size){
        $o=new-object -typename psobject |select  -property "link","date","size"
        $o.link=$link
        $o.date=$date
        $o.size=$size

        $col+=$o
        }
    } 
    $col |select -unique "link","date","size" |sort -desc date |select -last 1
相关问题