web-dev-qa-db-ja.com

カールと同等のPowerShell

PowerShellにcurlと同等のものはありますか?同様の組み込み機能がありますか、それともサードパーティのコマンドレットがありますか?

135
Borek Bernard

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/

91
Michael Kelley

Powershell 5.0では、curlInvoke-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

…でも、お勧めしません。冗長なコマンドは、コードを読むときに他の人を助けます。

36
John Bentley

優れたコマンドライン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"
28
ipr101

また、 Git for Windows をインストールして、Git binフォルダをパスに入れることもできます。 Gitのインストールには、curl.exeなどが含まれています。インストールしたら、%programfiles(x86)%\git\binをPATHに入れてください。これで、WindowsのコマンドプロンプトまたはPowerShellコンソールからcurlコマンドを使用できるようになります。

15
Jamie

あなたは Chocolatey でcURLをインストールすることができ、PowerShell CLIまたはcmdで利用可能なカールを持つことができます。

14
Spoike

windows上でwgetまたはcurlに最も近いのは ビット (バックグラウンドインテリジェント転送サービス)で、これは強力なシェル用のスニペットを用意しています。

1
akira

curl

cmd、bash

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
0
Archon

このコマンドは動作するはずです。

Invoke-WebRequest -UseBasicParsing -Uri http://example.com/

これは、PowerShell 3.0以降の Microsoft.PowerShell.Utility の一部です。

Powershellでテキストファイルに書き込むための$ webclient.downloadstringを入手してください

0
kenorb