Comandos divididos en varias líneas en PowerShell

  1. Comando de varias líneas de Windows PowerShell
  2. Rompiendo largas líneas de código usando operadores específicos
Comandos divididos en varias líneas en PowerShell

El código legible se comunica muy fácilmente su propósito de funcionalidad a los usuarios. Los nombres de variables y métodos deben tener convenciones de nomenclatura adecuadas para la legibilidad del código. Otros atributos que contribuyen a la legibilidad del código son la sangría coherente y el estilo de formato. El comando de varias líneas de Windows PowerShell ayuda a dividir las líneas de comando largas en varias declaraciones para mejorar la legibilidad.

En Windows PowerShell, los comandos de varias líneas se pueden crear fácilmente con el carácter de acento grave para dividir instrucciones de varias líneas de comandos largos o de una sola línea.

El carácter de acento grave se utiliza como una especie de carácter de escape. Escapa del carácter de nueva línea y da como resultado una continuación de línea.

Este artículo explicará la importancia de los comandos multilínea de Windows PowerShell para dividir comandos largos en varias líneas.

Comando de varias líneas de Windows PowerShell

Para dividir un comando largo en varias líneas, use el carácter de acento grave para dividirlo en varias líneas.

Por ejemplo, queremos obtener información sobre el espacio libre en disco en la computadora local. Desafortunadamente, la secuencia de comandos para obtener esta información específica es un comando extendido, lo que dificulta su lectura y administración.

Código de ejemplo:

Get-WmiObject -Class win32_logicaldisk | Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}

Puede parecer que la sintaxis está dividida en este artículo, pero cuando se copia a la interfaz de línea de comandos, el ejemplo anterior es una secuencia de comandos de una sola línea muy larga.

Podemos dividir fácilmente un comando largo en varias líneas usando el carácter de acento grave de Windows PowerShell para un salto de línea en un comando determinado.

Código de ejemplo:

Get-WmiObject -Class win32_logicaldisk `
| Format-Table DeviceId, `MediaType, @{n="Size";e={[Math]::Round($_.Size/1GB,2)}}, `
@{n="FreeSpace";e={[Math]::Round($_.FreeSpace/1GB,2)}}

En el ejemplo anterior, dividimos el comando largo en varias líneas usando un espacio en blanco seguido del carácter de acento grave al final donde queremos dividirlo. Recuerda que no debe haber ningún carácter entre el acento grave y el salto de línea, incluidos los espacios en blanco.

La estructura del código es fácil de leer y de mantener en Windows PowerShell mediante el comando multilínea. Sin embargo, el carácter de acento grave generalmente no se recomienda porque el carácter es difícil de leer e invita a errores. Entonces, tenemos un método alternativo para dividir largas líneas de código.

Rompiendo largas líneas de código usando operadores específicos

Por lo general, obtiene una continuación de línea automática cuando un comando no puede completarse sintácticamente en ese punto.

Un ejemplo sería iniciar un nuevo elemento de canalización (|). La tubería funcionará sin problemas ya que, después del operador de la tubería, el comando no puede completarse porque falta otro elemento de la tubería. Entonces, lo que hace nuestro intérprete es buscar el siguiente elemento de canalización en la siguiente línea de comando.

Código de ejemplo:

Get-WmiObject -Class win32_logicaldisk | 
Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}

Una coma (,) también funcionará en algún contexto como el operador de canalización.

Código de ejemplo:

Get-WmiObject -Class win32_logicaldisk | 
Format-Table DeviceId, MediaType, 
@{n="Size"; e={[Math]::Round($_.Size/1GB,2)}},
@{n="FreeSpace"; e={[Math]::Round($_.FreeSpace/1GB,2)}}

Además, las llaves ({}) al definir bloques de script permitirán la continuación de línea directamente.

Código de ejemplo:

Get-WmiObject -Class win32_logicaldisk | 
Format-Table DeviceId, MediaType, 
@{
    n="Size"; e={
        [Math]::Round($_.Size/1GB,2)
    }
},
@{
    n="FreeSpace";e={
        [Math]::Round($_.FreeSpace/1GB,2)
    }
}

Usando las técnicas anteriores, ahora podemos observar que nuestro código de ejemplo es más fácil de leer, y lo logramos sin usar el carácter de acento grave.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn