Existe-t-il un équivalent de curl
dans PowerShell? At-il une capacité intégrée similaire ou existe-t-il une applet de commande tierce?
PowerShell 3.0 a la nouvelle commande Invoke-RestMethod
:
http://technet.Microsoft.com/en-us/library/hh849971.aspx
plus de détails:
https://discoposse.com/2012/06/30/powershell-invoke-restmethod-putting-the-curl-in-your-Shell/
À partir de Powershell 5.0, sinon avant, curl
est un alias pour 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
Pour utiliser la commande sans alias ...
PS> Invoke-WebRequest -Uri https://localhost:443/
PS> Invoke-WebRequest -Uri https://www.google.com
Renvoyez donc plusieurs propriétés de la requête comme suit ...
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
... ou juste le contenu ...
PS> Invoke-WebRequest -Uri https://www.google.com | Select-Object -ExpandProperty Content
<!doctype html><html itemscope="" itemtype="http://schem[etc ...]
Les commandes équivalentes aliasées sont ...
PS> curl -Uri https://www.google.com
PS> curl -Uri https://www.google.com | Select-Object -ExpandProperty Content
En utilisant les valeurs par défaut de Powershell et d’autres alias, vous pouvez raccourcir les commandes pour
PS> curl https://www.google.com
ps> curl https://www.google.com | Select -ExpandProperty Content
... mais je ne le recommanderais pas. Les commandes verbeuses aident les autres lors de la lecture de votre code.
L'excellent blog Command Line Kung Fu contient un article où ils comparent curl, wget et les commandes PowerShell associées.
En un mot:
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html","C:\hello-world.html")
Ou, si votre version de Powershell/.Net n'accepte pas 2 paramètres pour DownloadString
:
(New-Object System.Net.WebClient).DownloadString("http://www.example.com/hello-world.html") > "C:\hello-world.html"
Vous pouvez également installer Git pour Windows , puis placer le dossier bin Git dans votre chemin. L'installation de Git inclut, entre autres, curl.exe. Après l’installation, il suffit de mettre %programfiles(x86)%\git\bin
dans votre PATH. Vous pourrez ensuite utiliser la commande curl à partir de l'invite de commande Windows ou de la console PowerShell.
Vous pouvez installer cURL avec Chocolatey et disposer de curl dans PowerShell CLI ou cmd
.
la chose la plus proche de wget
ou curl
sous windows est bits (service de transfert intelligent en arrière-plan), qui contient des extraits prêts à être utilisés dans PowerShell.
Cette commande devrait fonctionner:
Invoke-WebRequest -UseBasicParsing -Uri http://example.com/
Cela fait partie de Microsoft.PowerShell.Utility depuis PowerShell 3.0.
Voir aussi: Obtenez $ webclient.downloadstring pour écrire dans un fichier texte dans Powershell .