Ejecute el comando Curl en PowerShell

Migel Hewage Nimesha 21 diciembre 2022
Ejecute el comando Curl en PowerShell

El sistema operativo Windows admite una serie de herramientas de línea de comandos que pueden ser muy útiles en la automatización. curl es una de estas herramientas útiles que se pueden usar para realizar solicitudes desde o hacia un servidor a través de cualquiera de los protocolos admitidos, como HTTP, HTTPS, FTP, FTPS, SMTP, etc. Esta herramienta de línea de comandos admite algunos de las características adicionales como carga FTP, soporte de proxy, transferencia de reanudación y ancho de banda limitado.

Desde la compilación oficial de Windows 1804, se ha agregado curl a su cadena de herramientas. Puede verificar esto abriendo el símbolo del sistema de Windows y ejecutando el siguiente comando.

curl --version

Producción :

curl 7.55.1 (windows)

La salida puede cambiar según su instalación de curl.

El curl en Windows PowerShell

En Windows PowerShell, debe usar el comando curl de una manera ligeramente diferente que en el símbolo del sistema de Windows. Porque el comando curl está asignado como un alias al cmdlet Invoke-WebRequest. Puede verificar esto ejecutando el siguiente comando en una ventana de PowerShell.

Get-Alias -Name curl

Producción :

CommandType		Name						Version		Source
-----------		----						-------		------
Alias			curl -> Invoke-WebRequest

Todos estos comandos se resolverán en el proceso de ejecución de comandos de PowerShell. Por lo general, los alias tienen la prioridad más alta. Por lo tanto, debe usar el ejecutable curl.exe directamente en PowerShell en lugar de curl. Puede usar el cmdlet Get-Command para ver cómo se resuelven estos dos comandos en tiempo de ejecución.

Get-Command curl

Producción :

CommandType		Name						Version		Source
-----------		----						-------		------
Alias			curl -> Invoke-WebRequest
Get-Command curl.exe

Producción :

CommandType		Name						Version		Source
-----------		----						-------		------
Application		curl.exe					7.55.1.0	C:\Windows\system32\curl.exe

La conclusión es que si necesita usar el curl (igual que en el símbolo del sistema de Windows) en PowerShell, entonces debe llamar al ejecutable curl (curl.exe) directamente. De lo contrario, debe apegarse al alias curl de PowerShell que se resuelve en el cmdlet Invoke-WebRequest debajo del capó.

La sintaxis curl en PowerShell

curl.exe [options] <url>

Puede ejecutar el siguiente comando para obtener más información sobre el comando curl y sus opciones como -a, -C, etc…

curl.exe --help

Producción :

Usage: curl [options...] <url>

-a, --append		Append to target file when uploading
.
.
.
-C, --continue-at	<offset> Resumed transfer offest

Escenarios de ejemplo

Muestra la página web HTML devuelta como respuesta.

curl.exe https://www.google.com

Muestra la respuesta, el encabezado de solicitud y el encabezado de respuesta.

curl.exe -v https://www.google.com

Muestra la información del encabezado.

curl.exe -I https://www.google.com

Guarda la información del encabezado en un archivo llamado file1.txt.

curl.exe -I https://www.google.com -o file1.txt
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.