3

似たようなものを検索しましたが、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
        }
}
4

1 に答える 1