wgetやcurlのようなWindowsのコマンドラインからファイルをダウンロードする方法


348

Internet ExplorerまたはFirefoxでAcrobat Reader / Quicktime / MS Word /その他を開かずに、Webから何かを直接ダウンロードするにはどうすればよいですか?

私はWindowsを使用しているので、WindowsバージョンのWgetでできます。


ファイルを右クリックして「対象をファイルに保存」または「リンクを別名で保存」または「名前を付けて保存」(言語はブラウザによって異なります)を押すだけで機能します。
BrainSlugs83

25
コマンドを使用するポイントは、必要に応じていつでもバッチファイルを作成し、実行(おそらくタスクとしてスケジュール)できることです。それがGUIが不足しているところです。
Jbm

4
MS Wordでどのようにダウンロードしますか?
ハイメHablutzel 14

5
@JaimeHablutzelなぜMS Word経由で何かをダウンロードしたいのですか?MS Wordは端末ではありません。
ブレーデンベスト

1
@SDsolarまたは、以下の回答に賛成/改善してください
フランクリンゆう

回答:


180

Wget for Windows動作するはずです。

Wgetはウィキよくある質問

GNU Wgetは、最も広く使用されている2つのインターネットプロトコルであるHTTPとFTPを使用して、World Wide Webからファイルを取得する無料のネットワークユーティリティです。非対話型で動作するため、ログオフした後、バックグラウンドでの作業が可能になります。

FAQのこのセクションから、ダウンロードリンクが推奨されます。

Windowsバイナリ

代わりにJernejSimončičの厚意によるリンクが使用されます。


9
Winwgetもありますcybershade.us/winwgetあなたは、GUI好む場合
コル

13
スタンドアロンバージョンは、このリンクからダウンロードできます。
ヴィトジェンタイル14

5
でも最新(今日のように)、より最近のWindowsのビルド JernejSimončičが提供する、
グラダブル

1
@cixelsyd代替ソースへのリンクを更新しました。
clearkimura

1
eternallybored.org/misc/wget/は、私のシステムのエンタープライズアンチウイルスによってフラグが付けられています。カーボンブラック/ビット9。おそらく誤検知。しかし、sourceforge oneは実行されます。sslv3をサポートしません。
TamusJRoyce

311

PowerShellを使用して最近発見した別の方法:

$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")

GETクエリでも機能します。

ファイルをダウンロードするために資格情報を指定する必要がある場合は、次の行を間に追加します。

$client.Credentials =  Get-Credential                

標準のWindows資格情報プロンプトが表示されます。そこで入力した資格情報は、ファイルのダウンロードに使用されます。これを行う必要があるのは、$ clientオブジェクトを使用するすべての時間に一度だけです。


91
また、1行でそれを行うことができます:(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
シェラックから

16
@Rob powershellはWindowsに組み込まれています...
nhinkle

9
はい、Vistaからです。
アラン

3
@ BrainSlugs83、絶対に、しかし多くの、多くの人々はまだXPを使用しています。それは単に心に留めておくべきものです。
アラン

4
@ BrainSlugs83、あなたはまだ古いWindowsシステムにいる人々の数を過小評価しています。私は問題を理解していない、私はそれがVistaの上でのみであると指摘した。人々はそれを無視するか、「ちょっとありがとう!」と言うことを選択できますが、あなたは....?問題がある場合は、チャットを作成してください。担当者(あなたのような人)は、ここで議論する場所はないことに気付くはずです。
アラン

83

PowerShellが3.0以上の場合、Invoke-WebRequestを使用できます

Invoke-WebRequest -OutFile index.html http://superuser.com

またはゴルフ

iwr -outf index.html http://superuser.com

WindowsでHTTP経由でファイルをダウンロードする


これは、SourceForge(および場合によっては他のサイト)のリダイレクトでは機能しませんSystem.Net.WebClient。ただしInvoke-WebRequest、を追加して機能させることができます-UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox
Ela782

ダウンロードの進行状況を確認するオプションはありますか?
フランクリンゆう

@FranklinYu進捗状況は、ファイルが十分に大きい場合に表示されます
スティーブンペニー

オプションは、OUTFILEを指定して、まだ保存しないためにそこにある(ようwgetcurl -Ocurl --remote-nameまたはcurl -J?)
トマシュGandor

60

Windowsには独自のコマンドラインダウンロードユーティリティ-BITSAdminがあります。

BITSAdminは、ダウンロードまたはアップロードジョブを作成し、その進行状況を監視するために使用できるコマンドラインツールです。

EDIT26.01.15 - ここにファイルが外部ツールなしでWindows上でダウンロードすることができる方法の私の概要です

完全なbitsadminの例:

bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip

編集20185月15-certutilでファイルをダウンロードすることも可能です

certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip

Certutilは、デフォルトではXP / Win2003にはインストールされませんが、新しいWindowsバージョンでは使用可能です。XP/ 2003の場合、Windows Server 2003の管理ツールパックが必要です。


7
面白い。これは、wgetと比較した場合の不格好なソフトウェアです。
マットH

2
Windows XPには同梱されておらず、他のバージョンにも同梱されていない可能性があることに注意してください。
イアン・ダン

12
更新:BITSAdminは非推奨であり、Windowsの将来のバージョンで使用できることが保証されていません。BITSサービスの管理ツールは、BITS PowerShellコマンドレットによって提供されるようになりました。
-nulldev07

2
@MattH:そもそもwgetになっていないからですか?-参照en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service
peterchen

4
0x80070057が-ファイルを追加することができません
トマーシュZato

32

次のテキストをとして保存し、wget.js単に呼び出します

cscript /nologo wget.js http://example.com

これはコードです:

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);

/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/

このスクリプトの言語は何ですか?現在のタスクに役立つようです。参考資料をもっと見つけたいです。vb
G-の

1
単一ファイルに役立ちます。再帰的なダウンロードとhttpsの拡張が必要です。
オプティサイクリック14年

4
@ G-。私はパーティーに遅れていますが、それはJavaScriptです。
-prooffreader

database.clamav.net/daily.cvdに対してこれを実行しようとしましたが、ダウンロードしたのは44MBのうち88kBのみでした:(
kokbira

22

ここにはWindows用のネイティブcURLがあります。SSLサポートの有無にかかわらず、多くのフレーバーが利用可能です。

Cygwinなどの余分な荷物は必要ありません。1つの小さなEXEファイルだけです。


また、Windows Powershellのすべての最新バージョンには、両方wgetcurlエイリアスが組み込まれていることを知っておくことが重要です。それらは同等です。

wget機能を取得するために追加のファイルやダウンロードは必要ありません。

PowershellでCurlを使用する(The Sociable Geek)

抜粋:

GitHubリポジトリからファイルをダウンロードするようなcURLコマンドを入力できます。

curl http://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json

動作しているように見えますが、実際に実行しているのは、cURLをエイリアスとして使用しているだけです。上記の例では、ファイル自体の代わりにヘッダーを取得するだけです。

PowerShellのエイリアスを使用すると、長いコマンドのショートカットを作成できるため、常にコマンドを入力する必要がありません。

コマンドGet-Aliasを入力すると、PowerShellで使用されるすべてのエイリアスのリストが表示されます。ご覧のとおり、curlコマンドはInvoke-WebRequestコマンドを呼び出すだけです。これらは似ていますが、同じではないため、上記のリクエストは機能しません。

ここに画像の説明を入力してください

PowerShellでこれを適切に機能させるには、次のように変数と-OutFile引数を使用するのが最も簡単な方法です。

ここに画像の説明を入力してください

(画像「https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json」で切り捨てられたファイル名)

この構文は、ターゲットファイルの全内容をazuredeploy.jsonローカルファイルにダウンロードしますnewfile.json


主な利点は、Powershell自体に組み込まれているため、このコードがダウンロードなしで直接実行されること、または最新バージョンのWindowsで動作させるために他の追加ファイルを作成する必要があることです。


これは1行で直接実行できますが、行はかなり長くなり、一目ですぐに読めるようにはなりません。
SDsolar

21

上記のPowerShellメソッドを呼び出す簡単なmyGet.batファイルを作成しました。

@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP

スペースを含むファイル名の解析URLからいくつかのコードを借りました。


1
どうして下票?これは私には問題ないと思われ、質問への直接の回答です。はい、それは不格好であり、URL内のアンパサンド(&)をエスケープするなどの改善を使用できますが、そのまま機能します。
マットウィルキー

PowerShellスクリプトを記述する方が簡単ではないでしょうか?
SamB

1
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"<-スクリプトファイルのハードコーディングの場所とファイル名での単純な1行のPowerShellの使用。
ジェームズエビー

8

私は同じものを探していましたが、上記のパッケージをインストールする特権がなかったので、小さな回避策をとりました(30以上のファイルをダウンロードするため):

  • バッチファイルを作成しました
  • すべてのファイルをリストしました
  • firefox.exe各行の先頭に置く
  • のfirefoxディレクトリに行きました Program Files
  • 走った。

4

場合PowerShellはオプションです(潜在的に)あなたは、余分なものをインストールする必要がないので、それは好ましい経路は、です:

(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')

それに失敗すると、Wget for Windowsは、他の人が指摘しているように、間違いなく2番目に最適なオプションです。別の回答に投稿されているように、Wgetをすべて単独ダウンロードするか、CygwinまたはMSysの一部として取得することができます。

何らかの理由で、PowerShell 搭載していないマシンを使用し、稼働中のWebブラウザーにアクセスできない(つまり、Internet Explorerがシステム上の唯一のブラウザーであり、その設定がタイムワープに陥っている場合)破損している)、ファイルがFTPサイト(HTTPではなく)にある:

start->run "FTP", press "OK".

メモリが機能する場合、Windows 98から存在しており、Windows 8 RTMにまだ存在していることを確認できます(appwiz.cpl機能を追加するには、機能を追加/削除する必要があります)。このユーティリティは、Web上のFTPサイトとの間でファイルをダウンロードおよびアップロードできます。また、スクリプトで使用して、いずれかの操作を自動化することもできます。

組み込みのこのツールは、特にftp.cdrom.comの時代に、私にとって過去の命の恩人でした。ダイヤルアップインターネットのみを備えた完全に壊れたマシンにFirefoxを一度ダウンロードしたことがあります接続(sneakernetの最大パケットサイズが1.44 MBのままで、Firefoxがまだ「Netscape」と呼ばれていたとき、/ me does trollface)。

いくつかのヒント:独自のコマンドプロセッサであり、独自の構文を持っています。「help」と入力してみてください。すべてのFTPサイトにはユーザー名とパスワードが必要です。しかし、「匿名」ユーザーを許可している場合、ユーザー名は「匿名」で、パスワードはメールアドレスです(追跡したくない場合は作成できますが、通常はそれを確認するための何らかのロジックがあります有効なメールアドレス)。


コマンドラインftpを考えるための+1!ただし、wgetとpowershellは両方ともパーティーに参加する前によく言及されていたので、-1でした。:-/
マットウィルキー

私が見た他のPowershellの回答はすべてマルチライナーであり、および/またはそれらにコードの匂いがありました-これはファイルをダウンロードするための短くてシンプルな1つのライナーです。-また、すべての基盤を網羅した回答を提供したかった。:-)
BrainSlugs83

1
宛先ファイルに2つの疑問符がある理由がC:\tmp\file.tx??t
わかりません-Ploni



2

PowerShellでパッケージ化されたを使用wgetすることもできます。; ^)開くには、Windowsキーを押して「powershell」またはWindows-Rと入力し、「powershell」と入力してReturnキーを押します。

インストールは不要です。

従来との興味深い違いの1つwgetこのリンクで詳しく説明します):単純に大なり記号を使用してファイルにパイプすることはできません。wgetPowerShellのは、の単なる便利なラッパーでありInvoke-WebRequest、その構文を使用してファイルに書き込む必要があります。

wget https://superuser.com/questions/25538 -OutFile rubySlippers.html

1
-OutFile仕事をしました!
ディミトリーK

1

WGet for Windowsはこちらから入手できます。または、ダウンロードするアイテムのダウンロードリンクを右クリックして、[名前を付けて保存]を選択することもできます。これにより、ファイルがダウンロードされ、割り当てられたアプリケーションでは開きません。


1

wgetChocolatey を介したインストールが最も簡単な方法だと思います。

  1. Chocolateyをインストールする
  2. コマンドラインから次を入力します。 choco install wget
  3. その後wget、* nixシステムのようにコマンドラインから使用できます。

1

https://lolbas-project.github.io/download関数を検索します

今があるBitsadmin.exeCertutil.exeEsentutl.exeExpand.exe, Extrac32.exeFindstr.exeHh.exeIeexec.exeMakecab.exeReplace.exeWindows Vistaでは、Windows 7、Windows 8の、Windowsの8.1はWindows 10と同等Serverのバージョンのために。


0

GUIが必要な場合は、VisualWgetを試してみてください。これは実際にはクリーンで、機能がいっぱいです。ダウンロードエンジンはGNU Wgetに基づいています。

編集:リンクを更新しました。


1
ここに更新されたリンクがあります。sites.google.com / site / visualwget / (ダウンロードはページの下部にあります。右側の小さな矢印を使用してください)
Reed Hedges


-1

gnuwin32を使用する代わりに、wgetを含むunxutilsがあります。


unxutilsで管理できますが、古いバージョンであり、古いバージョンのwgetを使用します。gnuwin32は使用するものです。インストールするのはそれほど便利ではなく、物を見つけるのも簡単ではありませんが、unxutils以上のものがあります。
barlop

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