[PowerShell] Evitar que wget (Invoke-WebRequest) tarde tanto

Mientras estaba preparando unos scripts para automatizar el proceso de sideloading de una aplicación Windows 8.1, me encontré con un problema bastante tonto. Estaba descargando por HTTP el paquete de la aplicación desde una red local pero el comando wget de PowerShell tardaba demasiado. Tenía claro que no era problema de la red porque el archivo bajaba a buena velocidad por otros medios, pero siempre que usaba wget el comando tardaba demasiado tiempo. Una descarga de menos de 2 segundos se convertía en una descarga de más de 10.

Después de dedicar un rato descubrí que el problema estaba en el indicador de progreso de descarga del paquete. Lo único que tenía que hacer era desactivarla y el rendimiento pasaba a ser el esperado. Para hacer esto únicamente es necesario añadir esta línea antes de la llamada al comando wget:

$ProgressPreference='SilentlyContinue'

Si quisiera volver a mostrar el indicador de progreso para los siguientes comandos, únicamente tendría que volver a establecer su valor por defecto:

$progressPreference = 'Continue'

En fin, es una tontería que seguro que cualquiera con algo de callo con PowerShell conoce, pero mejor me lo apunto por aquí por si lo vuelvo a necesitar 😉

Modesto San Juan

Desarrollo software e intento hacerlo bien