Windowsでcurlを使おう。あるいはMicrosoft Security Essentialの定義ファイルをcurlでダウンロード。

Pocket

Windowsでもバッチファイルでファイルのダウンロードをしたい事がある。
そうすると、たとえばIEにURLを渡して起動するといったような事が考えられるが、いちいち保存を選ばないといけないとか、何かの操作が必要になってしまう。
これではバッチファイルの意味がない。
無人で行う方法にはいくつかあるだろうが、ここではcurlを使ってみる。

curlとは

curlとは、URLを使った、データ送受信コマンドである。
UNIX/Linux系では有名なコマンドだけれども、実はWindows向けバイナリも配布されている。

公式サイト
http://curl.haxx.se/
Wikipedia
http://ja.wikipedia.org/wiki/CURL

インストール

上記サイトのダウンロードページから取得。
http://curl.haxx.se/download.html

Windows向けには32bit版, 64bit版のほか、Generic版, MSVC版がある。
さらにMSIとzipが選べる。

Genericの方が最新なのでこちらを使った。2014/1/7現在のバージョンは7.34.0。
Windows7だけど2000/XPのもので問題なし。

インストーラは使いたくないのであれば、MSIではなくzipの方でどうぞ。
ただしzipの場合は、PATHを通すなどの作業は自分でしないといけないよう。

curlの使い方

curlはオプションが多くてウンザリする。
以下のサイトが適切な量にまとまっていると思う。

http://d.hatena.ne.jp/hogem/20091122/1258863440

curlの使い方例

proxy越しにMicrosoft Security Essential定義ファイルのダウンロードをする例。

curlは、そのままだとダウンロードした内容を標準出力に表示する。
-Oを付けると、ダウンロード先のファイル名で保存する。
この場合だとmpam-fe.exeとして保存する。

proxyサーバは、-xあるいは–proxyで指定する。
書式は<[protocol://][user:password@]proxyhost[:port]>

プロトコル指定がなければHTTP proxyとして扱われる。
ポート番号については、指定がなければ1080として扱われる。

例ではproxyサーバとしてthis.is.sample.proxyserver.com:8080を指定。
定義ファイルのダイレクトリンクとして http://download.microsoft.com/download/DefinitionUpdates/mpam-fe.exe を指定している(いつまで使えるかは分からない)

追記: リトライ数、リトライ感覚の指定

サーバの反応が悪く、ダウンロード途中で失敗してしまうことがある。
そういう場合には、–retry <num> –retry-delay <sec>を指定しておこう。

 

curlのman抜粋

以下、-xと-Oのマニュアルを抜粋。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください