Búsqueda de sitios web

Bucles en PowerShell | Tipos de bucles en PowerShell con beneficios


Introducción a los bucles en PowerShell

Siempre necesitaremos bucles si tenemos algo de trabajo repetitivo. En el bucle, ejecutamos un fragmento de código o cualquier declaración de forma repetitiva. Un ejemplo real, supongamos que en una escuela hay 20000 estudiantes y, por alguna razón, la universidad decidió otorgar 5 puntos adicionales por los exámenes a cada estudiante. Entonces la universidad ha decidido otorgar estas 5 calificaciones a todos los estudiantes excepto a aquellos cuya asistencia sea inferior a 100 días. Ahora simplemente asume cómo lo hará el personal: tendrán que verificar las calificaciones y la asistencia del año de cada estudiante. Pero lo mismo con la ayuda de Any loop se podría haber hecho muy fácilmente, creando una serie de estudiantes con sus calificaciones y fechas de asistencia. De este modo, utilizando un bucle podemos ahorrar esfuerzos adicionales. Comprendamos los bucles en PowerShell en detalle.

Tipos de bucles en PowerShell

Hay muchas formas de ejecutar un bucle en PowerShell, pero siempre depende de sus requisitos y la viabilidad del programa, por ejemplo, si desea ejecutar al menos una vez para cualquier matriz, entonces debemos usar el bucle do- while; de lo contrario, hay bucles for. y para cada uno cuáles son buenos.

Los tipos y sus ejemplos se dan a continuación:

1. mientras

La declaración while toma una condición como argumento y la ejecución de la declaración dentro de un bucle while depende de la condición, eso significa que si una condición es exitosa, ejecutará la declaración en caso contrario.

Sintaxis:

while(condition)
{
Statement 1
Statement 2
….
}

Ejemplo:

$j = 0
while($j -lt 10)
{
Write-Output $j
$j++ }

A continuación se muestra la pantalla para la ejecución del código anterior.

2. Hazlo mientras

Do while es similar al bucle while, la única diferencia es que se ejecutará al menos una vez, eso significa que ejecutará un bloque por primera vez y un bloque while si una condición es verdadera. En la siguiente sintaxis, el bloque se ejecuta por primera vez con seguridad.

  • Hacer: este bloque se ejecuta por primera vez y una vez cuando comienza la ejecución.
  • Mientras: La ejecución de la declaración 1 y la declaración 2 depende totalmente del éxito de la condición.

Sintaxis:

Do
{
Statement 1
Statement 2
….}while(condition){
Statement 3
Statement 4
…..
}

Ejemplo n.º 1:

$j = 0
do
{
Write-Output $j  // this block will execute first time
$j++
}while($j -lt 10)

Ejemplo n.º 2:

En este ejemplo, el bloque do se ejecutará por primera vez incluso si la condición no fuera verdadera.

$j = 0
do
{
Write-Output $j
$j--
}while($j -gt 0)

La pantalla para ambos programas se muestra a continuación.

3. Hacer hasta

Hacer hasta es un poco diferente de hacer mientras, en hacer hasta que la ejecución continuará hasta que se devuelva un resultado negativo mediante "hasta bloquear". Dos cosas son importantes aquí.

  • Hacer: este bloque seguirá ejecutándose hasta que falle la condición del bloque, lo que significa hasta que el bloque devuelva un valor negativo.
  • Hasta: bloquee la ejecución de la declaración 1 y la declaración 2 hasta que las condiciones devuelvan resultados negativos.

Sintaxis:

do
{
Statement 1
Statement 2
….
}until(condition)

Ejemplo:

$i = 0
do
{
Write-Output $i
$i++
}until($i -ge 5) //keep checking condition

En el bloque "hacer hasta" podemos ver que la ejecución del bloque hacer continuará hasta que la condición "hasta que el bloque" devuelva un valor positivo.

A continuación se muestra la pantalla para la ejecución del código anterior.

4. Para

La declaración For ejecuta una lista de declaraciones cero o más veces según una configuración inicial. En la siguiente sintaxis del bucle for, hay tres secciones importantes

  • Sección de inicialización: en esta sección, se asigna un valor inicial para cualquier variable, esta sección se ejecuta una vez por primera vez.
  • Condición: en las partes de condición, escribimos nuestra condición para qué bucle se ejecutará, lo que significa que la ejecución del bloque de instrucciones siempre depende del éxito de las partes de condición, si la condición es verdadera, entonces el bloque de instrucciones se ejecutará, de lo contrario no. .
  • Operación: En este bloque, podemos aumentar, disminuir o cambiar el valor de inicialización de una variable o cualquier cosa según nuestros requisitos.

Sintaxis:

for($initialisation; condition; operation)
{
Statement 1
Statement 2
….
}

Ejemplo n.º 1:

for($i = 0; $i -lt 3; $i++)
{
Write-Output $i
}

Pantalla de salida del código anterior

Muchas veces un bucle for no es suficiente para completar nuestros requisitos, por lo que podemos usar bucles for anidados. Deberíamos intentar evitar el anidamiento de bucles, ya que su complejidad temporal puede ser muy alta si no se maneja adecuadamente. A continuación se muestra un ejemplo de bucle for anidado.

Ejemplo n.º 2:

for($j = 0; $j -lt 3; $j++)
{
$line = ''for($j = 0; $j -lt 3; $j++)
{
$line += $j.ToString() + $j.ToString() + '  '
}
Write-Output $line
}

Salida: 00 11 22

5. Para cada uno

"Foreach" ejecuta bloques de instrucciones de forma consecutiva hasta el último elemento de una matriz. Lo bueno de la declaración forEach es que no tenemos que escribir ningún código por separado para extraer una matriz de elementos. En general, "foreach" es una versión optimizada del bucle "for" que proporciona elementos internos de la matriz sin escribir ningún programa. Aquí, simplemente busca un elemento dentro de la matriz en la que estamos ejecutando el bucle "foreach". Si hay algún elemento allí, ejecutará los bloques de declaración 1 y 2.

Sintaxis:

foreach($arrayItems)
{
Statement 1
Statement 2
…..
}

Ejemplo:

$numbers = 23,21,22,78
foreach($number in $numbers)
{
“$number is now =“ +$number
}

La pantalla inferior muestra las ejecuciones anteriores.

Beneficios de los bucles en PowerShell

El mayor beneficio de usar un bucle es que reduce demasiado trabajo manual y también es muy bueno para controlar el gran tamaño de datos para un tipo similar de actividad en él. Digamos que quiero que imprimas del 1 al 1000000 y te dije que puedes sumar 1 a cada número divisible por 2, que es un número par. Luego, si empiezas a imprimir uno por uno e intentas sumar 1 a cada número par, te llevará demasiado tiempo. Entonces, una manera mejor y más fácil que sugeriste fue simplemente repetir este proceso de agregar uno al número hasta llegar a 1000000. El mayor beneficio que obtenemos del bucle es que estamos reutilizando el mismo fragmento de código, no necesitamos escribir el El mismo código para miles de datos, ejecutará automáticamente el código hasta el final.

A continuación se presentan algunos puntos de beneficios

  • Aumentar la reutilización del código, lo que hace que el código sea más pequeño.
  • El cálculo más rápido para big data, ahorrando mucho trabajo manual
  • La redundancia de código es menor.

Un ejemplo con sus beneficios

Pregunta: imprime hasta 1000.

Without loop,
Write-Output 1;
Write-Output 2;
Write-Output 3;
Write-Output 4;
…so on
Till 100
With loop,
$x=1..100
foreach($y in $x){
Write-Output $y;
}

Artículos relacionados