Archivo de descarga de PowerShell

Migel Hewage Nimesha 6 febrero 2023
Archivo de descarga de PowerShell

Los usuarios pueden descargar archivos CSV de sitios web donde hay datos importantes, generalmente archivos grandes con información estadística. Por ejemplo, el siguiente enlace disponible públicamente le permitirá descargar el archivo CSV de la Encuesta anual de empresas - 2021 del Gobierno de Nueva Zelanda. Usaremos la siguiente URL del archivo CSV en este artículo para demostrar cómo realizar una función similar a través de los comandos de Windows PowerShell.

https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv

Windows PowerShell es una solución de secuencias de comandos que se ejecuta en las instrucciones de la línea de comandos para proporcionar una flexibilidad similar a la de los sistemas basados ​​en la línea de comandos similares a Unix para los usuarios de Windows. Además, hay una versión de PowerShell disponible para usuarios de Mac (el uso de los comandos sería ligeramente diferente al de Windows).

En un navegador web normal, la URL descarga directamente el archivo CSV en la carpeta de descargas especificada por el usuario, sin ningún problema. Cuando intenta descargar el mismo CSV en PowerShell, se requieren ciertos comandos.

Descargar un archivo a través de Windows PowerShell

El comando básico que se puede usar para descargar un archivo a través de Windows PowerShell es Invoke-WebRequest.

A través de este comando, una solicitud web PowerShell inicia una solicitud web. Luego se proporciona la URL requerida.

Lo importante a tener en cuenta aquí es la necesidad de un archivo de salida para guardar los datos recuperados de la solicitud web. Primero debe crear un tipo de archivo del tipo de archivo del que desea descargar datos. Como nuestro requisito, creamos un archivo de tipo .csv para guardar los datos pasados ​​a través de la solicitud web desde la URL anterior.

Es necesario tener en cuenta que no solo CSV, sino también otros tipos de archivos se pueden descargar de esta manera.

Uso de Invoke-WebRequest para descargar un archivo CSV en PowerShell

Entonces el Invoke-WebRequest se puede utilizar de la siguiente manera.

Invoke-WebRequest URL -OutFile File_path

Aquí, -OutFile sería el archivo para guardar datos del archivo CSV en línea.

A continuación se muestra la ejecución completa con nuestra URL de muestra.

Invoke-WebRequest https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv -OutFile .\SaveCSV.csv

Como salida en PowerShell, verá el siguiente script ejecutándose hasta que se complete la acción.

 Writing web request                                                                                                
                          Writing request stream... (Number of bytes written: 33451654)  

El resultado de la ejecución anterior es similar al archivo que descargaría directamente.

Sin embargo, existen restricciones para usar este Invoke-WebRequest. Cuando el sitio web requiere una autenticación simple basada en contraseña, se requiere que incluya sus datos de inicio de sesión y el Invoke-WebRequest.

Invoke-WebRequest URL -Add your lgin information- -SessionVariable MyNewSession 

Verá el siguiente script ejecutándose cuando ejecute la transmisión anterior hasta que se complete la descarga.

 Writing web request                                                                                                Writing request stream... (Number of bytes written: 1474178)                                                                                                                           

Luego, crearía una sesión web para usted y descargaría el archivo requerido. Estaría en formato .cs, que puede cambiar a formato .csv para que pueda usarse con cualquier aplicación legible .csv.

Pero si su sitio web requiere autenticación de dos factores o cualquier otro sistema de autenticación de múltiples factores, sería problemático iniciar la sesión web como se indica aquí. Por lo tanto, se recomienda utilizar un enlace personal (enlace de nube personal - acceso privado) para descargar el archivo a través de PowerShell.

Por lo tanto, puede descargar fácilmente el CSV u otros tipos de archivos a través de PowerShell a través de estos comandos anteriores. Como se explicó, sería a un archivo de salida que proporcionó, que sería fácil de usar, dado que se considera el formato correcto, o descargaría el archivo y lo convertiría a un formato legible.

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.