Powershell 可以用来列出 URL 目录的内容吗?
Can Powershell be used to list the contents of a URL directory?
我们在 FTP 服务器上托管了一堆 zip 文件,也可以通过 HTTP 访问这些文件。我很想做类似 (gci http://test.com/test/ *.zip ) 的事情,并给我网络服务器上存在的所有 zip 文件。
有谁知道以干净的方式做这样的事情的方法吗?
TIA
使用 invoke-webrequest
(PS V3)
这很容易
$r=iwr http://asite.com/test2/ -UseBasicParsing
$r.Links |?{$_.href -match ".zip"}
当然如+arco444 所述,必须启用目录索引
编辑
要获取最后修改的文件,您必须解析 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
我们在 FTP 服务器上托管了一堆 zip 文件,也可以通过 HTTP 访问这些文件。我很想做类似 (gci http://test.com/test/ *.zip ) 的事情,并给我网络服务器上存在的所有 zip 文件。
有谁知道以干净的方式做这样的事情的方法吗?
TIA
使用 invoke-webrequest
(PS V3)
$r=iwr http://asite.com/test2/ -UseBasicParsing
$r.Links |?{$_.href -match ".zip"}
当然如+arco444 所述,必须启用目录索引
编辑 要获取最后修改的文件,您必须解析 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