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

curl wget windows

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

私はWindowsを使っているので、Windows版のWgetがあれば大丈夫です

  403  community wiki  None


ベストアンサー

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

Wget Wiki FAQより

GNU Wget は、最も広く使われているインターネットプロトコルである HTTP と FTP を使って、 ワールドワイドウェブからファイルを取得するためのフリーのネットワークユーティリティです。非対話的に動作するので、ログオフした後にバックグラウンドで作業を行うことができます

FAQのこのセクションでは、ダウンロードリンクを推奨しています

Windows Binaries

Jernej Simončičさんのご好意によるリンクが代わりに使用されています

197  community wiki  2015-11-21


最近発見したPowerShellを使った代替案

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

GETクエリでも同様に動作します

ダウンロードする際に資格情報を指定する必要がある場合は、間に以下の行を追加します

$client.Credentials =  Get-Credential

標準的なウィンドウの資格情報プロンプトがポップアップします。そこに入力した認証情報がファイルをダウンロードするために使用されます。この操作は、$client オブジェクトを使用している間は一度だけで済みます

337  community wiki  2016-03-07


cURL

Windows 10にはcurl.exeが含まれています

Tar and Curl Come to Windows! | Microsoft Community Hub
First published on TECHNET on Dec 19, 2017 Beginning in Insider Build 17063, we’re introducing two command-line tools to the Windows toolchain: curl and bsdtar.

のようなことができるようになります

# example 1
curl.exe --output index.html --url https://superuser.com
# example 2
curl.exe -o index.html https://superuser.com

古いWindowsをお持ちの方は、まだダウンロードできます

curl for Windows

PowerShell

# example 1
Invoke-WebRequest -OutFile index.html -Uri https://superuser.com
# example 2
iwr -outf index.html https://superuser.com
Invoke-WebRequest (Microsoft.PowerShell.Utility) - PowerShell
The Invoke-WebRequest cmdlet sends HTTP and HTTPS requests to a web page or web service. It parses the response and returns collections of links, images, and ot...

113  community wiki  2020-07-16


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

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

EDIT: 26.01.15 – ファイルが外部ツールなしでWindows上でダウンロードできる方法の私の概要はこちら

そして、完全なbitsadminの例

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

編集:15.05.2018 – ファイルをダウンロードすることが可能であることが判明しました

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

XP/2003では、Admin Tool Pack for windows server 2003が必要です

66  community wiki  2018-05-15


以下のテキストを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");
*/

33  community wiki  2013-01-15


上記の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をパーシングからいくつかのコードを拝借しました

23  community wiki  2019-04-17


Windows用のネイティブcURLはこちらにあります。SSLサポートの有無に関わらず、多くの種類があります

Cygwin などの余分な荷物は必要ありません


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

wgetの機能を得るために、余分なファイルやダウンロードは必要ありません

Using Curl In Powershell (The Sociable Geek)

Excerpt:

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のどのバージョンでも動作することです

22  community wiki  2017-11-15


私も同じように検索していて、上記のパッケージをインストールする権限がなかったので、ちょっとした回避策として(30+ファイルをダウンロードするために)行ってみました

  • バッチファイルを作成しました
  • 全てのファイルをリストアップしました
  • 各行の先頭にfirefox.exeをつける
  • Program Filesのfirefoxディレクトリに移動しました
  • Ran it.

8  community wiki  2015-03-16


また、PowerShellにパッケージされたwgetを使うこともできます)開くには、Windows キーを押して “powershell” と入力するか、Windows-R と入力して “powershell” と入力して return を押してください

設置の必要はありません

従来の wget (そのリンク) との興味深い違いがあります。単にファイルにパイプするためにgreater-thanを使うことができないことです。PowerShell の wgetInvoke-WebRequest の便利なラッパーに過ぎず、ファイルに書き込むにはその構文を使う必要があります

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

4  community wiki  2017-03-20


PowerShell がオプションであれば、それが望ましいルートです

(new-object System.Net.WebClient).DownloadFile('http://www.example.com/file.txt', 'C:\tmp\file.txt')

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

何らかの理由でタイムワープにはまり、PowerShell がないマシンを使っていて、動作する Web ブラウザへのアクセスがゼロで(つまり、Internet Explorer がシステム上の唯一のブラウザであり、その設定が壊れている)、ファイルが FTP サイト(HTTP ではなく)にあるとしたら、次のようになります

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

記憶があれば、それはWindows 98以来そこにあった, と私はそれがWindows 8 RTMでまだそこにあることを確認することができます (あなたはそれを得るためにappwiz.cplと機能を追加/削除に入る必要があるかもしれません)。このユーティリティは、ウェブ上のFTPサイトへのファイルのダウンロードとアップロードの両方を行うことができます。どちらかの操作を自動化するためにスクリプトで使用することもできます

特に ftp.cdrom.com の時代には、このツールが内蔵されていることは、過去の私にとって本当に救世主となりました — ダイヤルアップインターネット接続しかなかった完全に壊れたマシン(sneakernet の最大パケットサイズがまだ 1.44 MB で、Firefox がまだ “Netscape” /me does trollface と呼ばれていた頃)で、一度この方法で Firefox をダウンロードしました

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

4  community wiki  2020-08-27


CygwinにはWgetがあります(他にもたくさんのユーティリティがあります)

3  community wiki  2015-03-16


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

現在、Windows vista、Windows 7、Windows 8、Windows 8.1、Windows 10、および同等のServerバージョンのためのBitsadmin.exeCertutil.exeEsentutl.exeExpand.exe, Extrac32.exeFindstr.exeHh.exeIeexec.exeMakecab.exeReplace.exeがあります

3  community wiki  2019-06-02


そしてhttp://www.httrack.com/は、ミラーリングサイトのための素敵なGUIを持っています(そしてそれは無料です)。また、Linux版もあります

2  community wiki  2015-02-25


Windows用のWGetはこちらから入手できます。または、ダウンロードしたい項目のダウンロードリンクを右クリックして「名前を付けて保存」を選択することもできます。これでファイルがダウンロードされ、指定されたアプリケーションでは開きません

1  community wiki  2009-08-19


Chocolatey経由でwgetをインストールするのが一番簡単だと思います

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

1  community wiki  2018-06-17


WinのCMDで(書き込みアクセス権がある場合)

set url=https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg
set file=file.jpg
certutil -urlcache -split -f %url% %file%
echo Done.

Windowsアプリ内蔵。外部ダウンロードは必要ありません

Win 10でテスト

1  community wiki  2020-04-25


Windows では、MobaXtermWSL2 のような Linux 端末エミュレータを使うこともできます

手順はどちらも似ていますが、何が違うのかというと、インストールの手順です

MobaXtermの場合は、このような手順になります

  1. MobaXterm のダウンロードとインストール (ホームエディションで十分な場合もあります)

  2. ターミナルを開いてMobAptを実行し、MobApt(MobaXtermパッケージマネージャ)にアクセスします

Access MobApt package manager

  1. パッケージ wget を探して Install/Update を押します (まだインストールされていないと仮定して)

MobApt package manager for MobaXterm

  1. そして、スクリプトを実行します (一番下には、実行する可能性のある wget スクリプトの例を残しておきます)

WSL2の場合は、この手順になります

  1. WSL2(https://docs.microsoft.com/en-us/windows/wsl/install-win10)をインストールします。私はUbuntu 18を使っています

  2. 設定が完了したら、以下のコマンドを開いて実行します

sudo apt-get install wget

  1. それからスクリプトを実行してください (下の方に実行可能な wget スクリプトの例を残しておきます)

このスクリプトはどちらの場合でも使用できます:

wget --header='Accept-Language: en-US,en;q=0.9,pt-PT;q=0.8,pt;q=0.7,de;q=0.6,fr;q=0.5,es;q=0.4,it;q=0.3,gl;q=0.2,hu;q=0.1' --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36" -c "http://..." -w 1

1  community wiki  2020-07-15


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

EDIT: リンクを更新しました

0  community wiki  2013-03-24


このSUの回答で文書化されているように、Powershellでは以下のように使用できます

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

0  community wiki  2018-12-05


gnuwin32 を使う代替手段としては、unxutils があり、これには wget が含まれています

-1  community wiki  2011-07-21


Windows用のビジュアルポストが必要な場合は、こちらが1つです。 これでデータやファイルを投稿することができます

-3  community wiki  2016-04-12


タイトルとURLをコピーしました