WindowsのスクリプトからHTTP経由でファイルをダウンロードする


19

URLを指定してHTTP経由でファイルをダウンロードする方法が必要です(wgetの動作に似ています)。この質問に対する答えを見ましたが、要件に2つの変更があります。

  • Windows 7以降で実行したいと思います(ただし、Windows XPで動作する場合、それはボーナスです)。
  • これは、スクリプトだけでストックマシンで実行できるようにする必要があります。スクリプトは、キーボードで簡単に入力したり、コピー/貼り付けしたりできるテキストでなければなりません。
  • 短いほど良い。

したがって、基本的には、ダウンロードを実行できる.cmd(バッチ)スクリプト、VBScript、またはPowerShellスクリプトが必要です。COMを使用するか、Internet Explorerを呼び出すことができますが、入力なしで実行する必要があり、ディスプレイなしで(Telnetセッションなどを介して)呼び出されたときに適切に動作する必要があります。




この質問は、ストックマシン上で実行されるもの(Windows用のwgetなどの追加ソフトウェアなし)を具体的に探しているため、重複ではありません。
ジェイソンR.クームス

@ JasonR.Coombs受け入れられた回答は、その質問の回答の1つと同じであるため、将来の読者はそれ以上何も得られません。
フランクリンゆう

同意する; この時点で、より一般的な質問がこの質問に優先します。
ジェイソン・R.クームス

回答:



14

私はBITSを使用します(入門書):

Background Intelligent Transfer Service (BITS) is a component of modern
Microsoft Windows operating systems that facilitates prioritized,
throttled, and asynchronous transfer of files between machines using
idle network bandwidth.

Windows 7の以降では、MicrosoftはPowerShellコマンドレットを使用するように助言する BITSのために。

% import-module bitstransfer
% Start-BitsTransfer http://path/to/file C:\Path\for\local\file

また、経由BITSを使用することができCOM参照、ここでは例えばVBScriptの。そして、「がありbitsadmin」、ダウンロードを制御するコマンドラインツールは:

BITSAdmin is a command-line tool that you can use to create download or
upload jobs and monitor their progress.

Windows 7ではbitsadmin.exe、それは非推奨のツールであると述べています。それでも:

% bitsadmin.exe /transfer "NAME" http://path/to/file C:\Path\for\local\file

2
現在、bitsadminは非推奨であり、Windowsの将来のバージョンには含まれない可能性があります。
ジェイソンR.クームス

@ JasonR.Coombs:リンク?参照?
アキラ

2
technet.microsoft.com/en-us/magazine/ff382721.aspx ...そのため、「bitadmin.exe」ではなく、bits-cmdletsを使用しています。
アキラ

1
ありがとう。私が行かなければならなかったのは、それを実行したときに廃止されたとビット管理者が言っていただけでした。
ジェイソンR.クームス

アウトオブパスが相対完全修飾やないでなければならないことに注意してください(帽子先端superuser.com/questions/365755/...
マットウィルキー

7

Web Clientクラスを試してください。このページの下部には、PowerShellスクリプトのサンプルがあります。

$c = new-object system.net.WebClient
$r = new-object system.io.StreamReader $c.OpenRead("http://superuser.com")
echo $r.ReadToEnd()

2
これは役に立ちます。WebClientには、コンテンツを直接ファイルにダウンロードするDownloadFileメソッドもあります。ありがとう。
ジェイソンR.クームス

3

次の6行(または最後の4行のみ)をコピーしてテキストファイルに貼り付けます。次に、名前をに変更しvget.vbsます。

'cscript vget.vbs >FILE.TXT
'Run this vbscript at command line. Use above syntax to download/create FILE.TXT
Set oX = CreateObject("Microsoft.XmlHTTP")
oX.Open "GET", "http://www.exampleURL.com/FILE.TXT", False
oX.Send ""
WScript.Echo oX.responseText

明らかに、このスクリプトで3つのことをカスタマイズして、それを機能させる必要があります。

  1. http://www.exampleURL.com/FILE.TXT」という部分。ダウンロードするファイルの正しいURLに置き換える必要があります。
  2. このスクリプトを実行するためにコマンドラインで実行するコマンド。スクリプトの正しい名前を指定する必要がありますvget.vbs
  3. また、DOSバッチコマンドラインFILE.TXTによって出力を送信する名前。

Dropboxアカウントから生のASCIIテキストファイル(より強力なcmdスクリプト)をダウンロードするためにこれを使用しようとしただけなので、EXEファイルなどで機能するかどうかはわかりません。または他のウェブサーバーから。

最初の2つのコメント行を省くと、長さは4行だけになります。VBScriptの使用方法を知っている場合は、頭の中でこのコードを持ち運び、必要に応じてコマンドラインに入力することもできます。それは唯一の5つの主要なコマンドコンポーネントが含まれていますCreateObject.Open.SendWScript.Echo.responseText


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.