似たようなものを検索しましたが、FTP ダウンロードの回答を探し続けています。これは役立つ情報ですが、最終的には翻訳が難しいことがわかります。PowerShell スクリプトを見つけて動作しましたが、自分のニーズに合わせて微調整できるかどうか疑問に思っています。PowerShell スクリプトの経験はあまりありませんが、学ぼうとしています。
必要なのはこれです。一連のファイルを無人でリモート マシンにダウンロードしてインストールする必要があります。ファイルは tinyurls 経由で電子メールで配布されます。私は現在、それらを .txt ファイルに入れ、powershell スクリプトにリストを読み取らせ、各ファイルをダウンロードさせています。
プロジェクトの要件と、(他のユーティリティではなく) powershell を使用するようになった理由は、これらが非常に特殊なマシンであるということです。利用可能なツールは、Windows 7 組み込みに組み込まれているものだけです。
私が遭遇する問題は次のとおりです。 ファイルは一度に 1 つずつダウンロードされます。Web サーバーが許可する限り、同時に多くのダウンロードを取得したいと考えています。(通常は 6)
現在のスクリプトは、tinyurl に基づいてファイル名を作成します。Web サーバーからの実際のファイル名が必要です。
ご提案いただきありがとうございます。
以下は、私が現在使用しているスクリプトです。
# Copyright (C) 2011 by David Wright (davidwright@digitalwindfire.com)
# All Rights Reserved.
# Redistribution and use in source and binary forms, with or without
# modification or permission, are permitted.
# Additional information available at http://www.digitalwindfire.com.
$folder = "d:\downloads\"
$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
$web = New-Object System.Net.WebClient
$web.Headers.Add("user-agent", $userAgent)
Get-Content "d:\downloads\files.txt" |
Foreach-Object {
"Downloading " + $_
try {
$target = join-path $folder ([io.path]::getfilename($_))
$web.DownloadFile($_, $target)
} catch {
$_.Exception.Message
}
}