Mac使いの人から、「WindowsじゃcURL使えないよね?」と聞かれたので、「最近のWindows 10ならcURLプリインストールされてますよ」と答えると驚かれた。
ほかにもいろいろな方法があるので、ざっと思いつくWindowsでのcURL使い方をメモ。
環境
Windows 10 Pro 64bit Version 1909
プリインストール版
Windows 10 Version 1803から、しれっとプリインストールされるようになっている。
ちなみに、 curl
以外にも tar
や wget
が使えるようになり、Version 1709の時点で ssh
も(コマンドプロンプトでsshするかはともかく)使える。
バージョン表記は以下。2020/4/18時点でのcURLバージョンは7.69.1だったので、ちょっと古い。
>curl --version curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Release-Date: [unreleased] Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
Bashインストール
Windows Subsystem for Linuxや、Git for Windowsをインストールすると使えるGit Bashでも、cURLが使用できる。
Git Bashだと、その時点の最新のcURLがついてくる模様。
$ git --version git version 2.26.1.windows.1 $ curl --version curl 7.69.1 (x86_64-w64-mingw32) libcurl/7.69.1 OpenSSL/1.1.1f (Schannel) zlib/1.2.11 libidn2/2.3.0 libssh2/1.9.0 nghttp2/1.40.0 Release-Date: 2020-03-11 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: AsynchDNS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz Metalink MultiSSL NTLM SPNEGO SSL SSPI TLS-SRP
Windows PowerShellのInvoke-WebRequest
いちおうWindows PowerShellでも curl
や wget
が使えるが、これらは Invoke-WebRequest
のエイリアス。オプションや実行結果の形式が全く違い、 curl -X POST
もエラーになるので使えない。
マルチプラットフォーム化したPowerShell Coreでは、これらのエイリアスは設定されなくなっている。
Windows PowerShellでプリインストール版のcURLを使う
curl.exe
のように拡張子までつけて実行するか、 Remove-Item alias:curl
でエイリアスを削除すればいい。詳しくはこちら。
別途インストール
Windows向けcURLを別途インストールすれば、最新バージョンを使用できる。
Chocolateyでもインストール可能。 Chocolatey Software | cURL 7.70.0
Cygwin
Cygwinインストール時に、cURLをインストールできる。試していないが、確かデフォルトではスキップになっていたと思う。
振り返り
Windowsも進化してるんですよ。これで grep
や sed
も標準で使えるようになればなぁ...