PowerShellにcurl
と同等のものはありますか?同様の組み込み機能がありますか、それともサードパーティのコマンドレットがありますか?
PowerShell 3.0に新しいコマンドInvoke-RestMethod
が追加されました。
http://technet.Microsoft.com/ja-jp/library/hh849971.aspx
より詳しく:
https://discoposse.com/2012/06/30/powershell-invoke-restmethod-putting-the-curl-in-your-Shell/
Powershell 5.0では、curl
はInvoke-WebRequest
のエイリアスです。
PS> Get-Alias -Definition Invoke-WebRequest | Format-Table -AutoSize
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
Alias iwr -> Invoke-WebRequest
Alias wget -> Invoke-WebRequest
エイリアスのないコマンドを使用するには.
PS> Invoke-WebRequest -Uri https://localhost:443/
PS> Invoke-WebRequest -Uri https://www.google.com
そのため、次のようにリクエストのいくつかのプロパティを返します。
PS> Invoke-WebRequest -Uri https://www.google.com
StatusCode : 200
StatusDescription : OK
Content : <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-AU"><head><meta content="text/html; charset=UTF-8"
http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/...
RawContent : HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Vary: Accept-Encoding
...または単なるコンテンツ...
PS> Invoke-WebRequest -Uri https://www.google.com | Select-Object -ExpandProperty Content
<!doctype html><html itemscope="" itemtype="http://schem[etc ...]
同等のエイリアスコマンドは...
PS> curl -Uri https://www.google.com
PS> curl -Uri https://www.google.com | Select-Object -ExpandProperty Content
Powershellのデフォルトやその他のエイリアスを利用すると、コマンドを短くすることができます。
PS> curl https://www.google.com
ps> curl https://www.google.com | Select -ExpandProperty Content
…でも、お勧めしません。冗長なコマンドは、コードを読むときに他の人を助けます。
優れたコマンドラインKung Fuブログには、curl、wget、および関連するPowerShellコマンドを比較する 投稿 があります。
手短に:
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html","C:\hello-world.html")
または、お使いのPowershell/.NetのバージョンがDownloadString
に2つのパラメータを受け付けない場合は、
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html") > "C:\hello-world.html"
また、 Git for Windows をインストールして、Git binフォルダをパスに入れることもできます。 Gitのインストールには、curl.exeなどが含まれています。インストールしたら、%programfiles(x86)%\git\bin
をPATHに入れてください。これで、WindowsのコマンドプロンプトまたはPowerShellコンソールからcurlコマンドを使用できるようになります。
あなたは Chocolatey でcURLをインストールすることができ、PowerShell CLIまたはcmd
で利用可能なカールを持つことができます。
windows上でwget
またはcurl
に最も近いのは ビット (バックグラウンドインテリジェント転送サービス)で、これは強力なシェル用のスニペットを用意しています。
curl -H "Host: whoami.local" 192.168.4.4
Invoke-WebRequest -H @{"Host"="whoami.local"} -UseBasicParsing 192.168.4.4
# or
# $(Get-Command curl) return "curl -> Invoke-WebRequest"
curl -H @{"Host"="whoami.local"} -UseBasicParsing 192.168.4.4
このコマンドは動作するはずです。
Invoke-WebRequest -UseBasicParsing -Uri http://example.com/
これは、PowerShell 3.0以降の Microsoft.PowerShell.Utility の一部です。
Powershellでテキストファイルに書き込むための$ webclient.downloadstringを入手してください 。