web-dev-qa-db-ja.com

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

Internet ExplorerやFirefoxでAcrobat Reader/Quicktime/MS Wordなどを開かずに、Webから直接ダウンロードするにはどうすればよいですか。

私はWindowsを使っていますので、Windows版の Wget でも構いません。

328
Paolo Tedesco

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

Wget Wiki FAQ から:

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

FAQのこのセクション から 、ダウンロードリンクが提案されています。

Windowsバイナリ

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

173
Tony

私が最近発見した、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オブジェクトを使用する予定の間、これを一度だけ実行する必要があります。

297
Paolo Tedesco

PowerShell> = 3.0がある場合は、 Invoke-WebRequest を使用できます。

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

またはゴルフ

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

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

79
Steven Penny

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

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

EDIT26.01.15 - 外部ツールなしでファイルをウィンドウにダウンロードする方法の概要を示します

そして完全なbitsadminの例:

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

編集15.05.2018certutilを含むファイルも をダウンロードすることが可能であることがわかりました - :

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

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

55
npocmaka

次のテキストを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");
*/
30
user190042

Windows用のネイティブcURLは here にあります。 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コマンドを呼び出すだけです。それらは似ていますが、同じではありません。そのため、上記の要求は私たちには機能しません。

enter image description here

これをPowerShellで正しく機能させるための最も簡単な方法は、次に示すように変数と-OutFile引数を使用することです。

enter image description here

(ファイル名は画像「 https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json 」で途切れています)

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


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

20
Gaurav Kumar

上記の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をスペース付きで解析するからコードを借りました。

20
MartinC

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

  • バッチファイルを作成しました
  • すべてのファイルをリストした
  • 各行の先頭にfirefox.exeを付けてください
  • Program Filesのfirefoxディレクトリに行きました
  • それを走った。
8
Jesse P Francis

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ブラウザにアクセスできない場合(つまりインターネット)エクスプローラはシステム上の唯一のブラウザであり、その設定は壊れています)、そしてあなたのファイルは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/trollface)。

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

4
BrainSlugs83

Cygwin にはWgetがあります(その他多くのユーティリティがあります)。

3
Rich Homolka

そして、 http://www.httrack.com/ には、サイトをミラーリングするためのNice GUIがあります(しかも無料です)。 Linux版もあります。

2
Zsolt Botykai

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

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

従来のwgetとの興味深い違いの1つ(リンクの詳細は にあります ):単純にファイルにパイプを付けるために大なり記号を使用することはできません。 PowerShellのwgetInvoke-WebRequestの単なる便利なラッパーです。ファイルに書き込むにはその構文を使用する必要があります。

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

https://lolbas-project.github.io/download関数を検索してください。

現時点では、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、およびそれに相当するサーバーバージョン用のBitsadmin.exeCertutil.exeEsentutl.exeExpand.exe, Extrac32.exeFindstr.exeHh.exeIeexec.exeMakecab.exeReplace.exeがあります。

1
noraj

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

1
BinaryMisfit

Chocolatey経由でwgetをインストールするのが最も簡単な方法だと思います。

  1. インストール チョコレート(
  2. コマンドラインから、次のように入力します。choco install wget
  3. * nixシステムのようにコマンドラインからwgetを使うことができます。
0
sivabudh

GUIが欲しいなら、 VisualWget を試してください。ダウンロードエンジンのGNU Wgetに基づいています。

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

0
Wurlitzer

この SUの答え で説明されているように、Powershellでは次のものを使用できます。

Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
0
Dolan Antenucci