Windows の cURL は、環境や使い方によって機能などが異なり、 Mac や Linux 向けに解説されている curl の操作と異なる場合があります。
今回は、こういったトラブルを回避するために Linux などで使われている本物の cURL を Windows11 にインストールしてみました。
まえがき
PowerShell で curl をそのまま叩けばいいじゃん?
…と思っていた時期が私にもありました。
ただ cURL を使いたいだけなのにドハマったので、改めて整理してみました。
色々な cURL
cURL をインストールする前に色々と存在する cURL の違いなど簡単に紹介します。
Invoke-WebRequest
1つ目は Invoke-WebRequest です。
Windows に標準で搭載されている Windows PowerShell では、 curl コマンドを叩いても Invoke-WebRequest が起動するようになっています。
これは、 curl が Invoke-WebRequest にエイリアスされているためです。
試しに Windows PowerShell で curl のエイリアスを確認してみると、この様になっています。

そして困ったことに、この Invoke-WebRequest と curl とでは、コマンドが全く異なります。
curl.exe
2つ目は curl.exe です。
Windows には、上記の Invoke-WebRequest とは別に curl.exe も実装されいます。
curl.exe は、 curl とほぼ同じように操作できますが、パラメータや扱えるプロトコルなどで異なる部分が存在します。
また、コマンドを実行する際は curl ではなく curl.exe と入力する必要があります。
curl.exe https://vantiq.com
パラメータが微妙に異なるなど、地味に使いづらいやつです。
Windows PowerShell
3つ目は Windows PowerShell です。
Windows PowerShell 自体は cURL ではないのですが、 cURL に関わってくるので紹介します。
Windows では PowerShell にも違いがあります。
Windows が標準で搭載している PowerShell は Windows PowerShell と呼ばれるもので、最新版の PowerShell とは機能面などで大幅に異なっています。
そして、上記でも説明した通り Windows PowerShell では curl が Invoke-WebRequest のエイリアスとして設定されています。
一方、 PowerShell の場合は、エイリアスが設定されていません。

cURL のインストール方法
cURL はインストーラーが用意されていないため、手作業でインストールする必要があります。
cURL のダウンロード
下記のリンクから cURL をダウンロードします。
今回は Windows 64-bit 7.87.0 binary をダウンロードしました。
インストール
ダウンロードしたzipファイルを解凍し、任意のフォルダに展開します。
今回は C:\Program Files\curl フォルダに展開しました。
Path の設定
curl フォルダ内の bin フォルダに Path を通します。
今回は C:\Program Files\curl\bin に Path を通しました。
以上で cURL のインストールは完了です。