IIS Web サイトでファイルをクエリし、それらのファイルを自動的にダウンロードするスクリプトを取得しようとしています。これまでのところ、私はこれを持っています:
$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 ファイルはダウンロードできないように見えるので、それが私のエラーの 1 つだと思います)。 )。$source
いくつかのテスト テキスト ファイル (example = ) があるサイトのサブフォルダーに値を変更しようとするとhttp://testsite:8005/subfolder/
、エラーが発生し、まったくダウンロードされ$testcode1
ません。 my を実行すると、サブフォルダーに次のリンクが表示されます:
/subfolder/test2/txt
/
/subfolder/test1.txt
/subfolder/test2.txt
理由がわかりませんそれはtest2ファイルを2回リストします.私の問題は、それがサブフォルダー/ファイル形式を返していたので、ダウンロードしようとしたためにエラーが発生したことであると考えまし$source + $line
た.これは本質的にhttp://testsite:8005/subfolder/subfolder/test1.txt
.$root
私のサイトのルートディレクトリであった値とforeach($line in $testcode1) { $webclient.downloadfile($root + $line, $destination + $line) }
、まだエラーが発生します。
ハイスピードの教祖の何人かが私のやり方の誤りを教えてくれるなら、私は感謝します. サイトの各サブフォルダーにあるすべてのファイルをダウンロードしようとしていますが、再帰的な操作が必要になることはわかっていますが、現在、それを行うスキル レベルがありません。私を助けてくれてありがとう!