Con .NET 7 lanzado hace poco, era cuestión de tiempo que viera la luz el que posiblemente sea su complemento más destacado: PowerShell 7.3. Para los que anden perdidos, se trata del intérprete de comandos de última generación de Microsoft, el cual está publicado como Open Source desde años, aunque la compañía se ha reservado más de una carta. Como consecuencia de la apertura de un buen porcentaje de su código fuente, ha llegado también a Linux y macOS y puede ser empleado como un sustituto de Bash y Zsh.
El gigante de Redmond nos recuerda que PowerShell 7 soporta Linux, Windows y macOS. Además de eso, su última versión ha llegado con bastantes mejoras y algunas novedades. Para empezar, tenemos la posibilidad de establecer $?
correctamente para los comandos de expresión con redirecciones, la corrección de un error al usar $PSNativeCommandUseErrorActionPreference
, se ha hecho que el manejo de errores del comando nativo sea opcional con ErrorActionPreference
y ahora es posible especificar la ruta como TargetObject
para las salidas de código no cero (non-zero) de ErrorRecord.
La completación mediante tabulador ha recibido diversas mejoras, entre ellas una corrección en la completación dentro de un bloque de script para ValidateScriptAttribute
, la completación de las tablas de hash (Hastable) en varios escenarios, soporte para completación mediante el uso de slash (/
) en las comparticiones a través de red, autocompletación de miembros mejorada, la priorización de las completaciones de ValidateSet sobre las enumeraciones para los parámetros, la mejora en los tipos de inferencia y completaciones, la posibilidad de añadir soporte de inferencia para los métodos genéricos con los tipos de parámetros y la adición de completación para el índice de expresiones de los diccionarios.
Para el comando cmdlets también se han introducido algunas mejoras, de entre las que destacan la inclusión del parámetro -HttpVersion
para los cmdlets en web, la adición de soporte a cmdlets en web para las etiquetas de fin abierto, la corrección de ConvertTo-Json -Depth
para permitir un máximo de 100, la mejora en el manejo de variables cuando se llama a Invoke-Command
con $using:
, la incorporación de -StrictMode
a Invoke-Command
para especificar el modo estricto cuando se invoca un comando localmente, el soporte para HTTPS con Set-AuthenticodeSignature -TimeStampServer
, los posibilidad de emplear milisegundos como parámetro en New-TimeSpan
y la eliminación de las secuencias de escape de ANSI en las cadenas antes de enviarlas a Out-GridView
.
Y hasta aquí todo lo importante de PowerShell 7.3. Los que quieran conocer todos los detalles pueden consultar el anuncio oficial y la lista de novedades publicadas en la documentación de Microsoft. El intérprete de comandos está disponible en la tienda oficial de la compañía para Windows (aunque debería de estar preinstalado y actualizándose), mientras que para Linux y macOS sería conveniente consultar las correspondientes páginas de la documentación oficial del gigante de Redmond.