我正在尝试获取一个脚本来查询 IIS 网站上的文件,然后自动下载这些文件。到目前为止,我有这个:
$webclient = New-Object System.Net.webclient
$source = "http://testsite:8005/"
$destination = "C:\users\administrator\desktop\testfolder\"
#The following line returns the links in the webpage
$testcode1 = $webclient.downloadstring($source) -split "<a\s+" | %{ [void]($_ -match "^href=['"]([^'">\s]*)"); $matches[1] }
foreach ($line in $test2) {
$webclient.downloadfile($source + $line, $destination + $line)
}
我还不太擅长 PowerShell,并且遇到了一些错误,但我设法将几个测试文件放入我的 wwwroot 文件夹中(web.config 文件似乎无法下载,所以我想这是我的错误之一)。当我尝试将我的$source
值更改为我网站上包含一些测试文本文件的子文件夹时(例如 = http://testsite:8005/subfolder/
,我得到错误并且根本没有下载。运行我$testcode1
的将在我的子文件夹中给我以下链接:
/subfolder/test2/txt
/
/subfolder/test1.txt
/subfolder/test2.txt
我不知道为什么它列出了 test2 文件两次。我想我的问题是,因为它返回子文件夹/文件格式,所以我遇到了错误,因为我试图下载$source + $line
,这基本上是http://testsite:8005/subfolder/subfolder/test1.txt
,但是当我试图通过添加来解决这个问题时一个$root
值是我网站的根目录并执行foreach($line in $testcode1) { $webclient.downloadfile($root + $line, $destination + $line) }
,我仍然得到错误。
如果你们中的一些高速大师可以帮助我指出我的方法的错误,我将不胜感激。我希望下载我网站上每个子文件夹中的所有文件,我知道这将涉及使用一些递归操作,但同样,我自己目前没有这样做的技能水平。预先感谢您帮助我!