Linux ではコマンドを使って新型コロナウイルスの世界の感染状況を把握できるらしいけど Windows ではどうやるの?(あるいは PowerShell でも curl っぽいことをしたい)


こんなツイートを見かけました。

curl コマンドで感染状況が確認できるWebサイトがあるようです。せっかくなので Windows でも似たようなことをやってみましょう。1

PowerShell でもやってみた

PowerShell には curl がご用意されていないため、代わりに Invoke-WebRequest コマンドレットを使います2

(Invoke-WebRequest https://corona-stats.online/Japan -UserAgent curl).Content

また、以下のバッチファイルをパスが通ったディレクトリ配置すると、durl <URL> でコンテンツを取得することができるようになります:

durl.bat
@echo off
powershell -Command " (Invoke-WebRequest %* -UserAgent curl).Content"

Windows 10 v1803 以降の場合

curl.exe がインストールされているので直接実行できたりしますが、PowerShell の色々とややこしい脳の筋トレに役立つエンコード周りを考慮に入れなければいけないので個人的にはおすすめしません。

2020-04-07 追記

コメントにて @7cc さんがエンコード周りの解説を書いてくださっています。感謝!

参考リンク


  1. あるいは PowerShell で curl っぽいことをする備忘録です(いつも忘れる) 

  2. official curl binary builds for Microsoft Windows はご用意できました。また、後述のように Windows 10 v1803 からは標準で curl.exe がインストールされています。なお、PowerShell における curlwgetInvoke-WebRequest コマンドレットのエイリアスです。