PowerShell ForEach Loop - ¿Cómo funciona ForEach Loop en PowerShell?

Tabla de contenido:

Anonim

Introducción a PowerShell ForEach Loop

Entendiendo ForEach Loop en PowerShell, ForEach y forLoop, ambos realizan las mismas tareas, ambos son para manipular y ejecutar el mismo fragmento de código de forma repetitiva. Si está leyendo cada elemento de una matriz o puede estar leyendo cada línea de un archivo, en ese tipo de condición usamos foreach. Por ejemplo, una matriz que contiene usuarios y queremos verificar al usuario con el nombre "Vijay", por lo que debemos verificar cada elemento y para eso, necesitamos un bucle "foreach" y una vez que el usuario "Vijay" encuentre el bucle saldrá. Si necesita mirar el atributo de ciudad de cada usuario antes de realizar una acción, puede usar ForEach Loop y puede realizar el trabajo respectivo en cada ciudad. ForEach ahorra poca memoria y tiempo en comparación con for loop. En PowerShell 4.0 y versiones posteriores, el Método ForEach proporciona un rendimiento aún más rápido.

Sintaxis de ForEach Loop

A continuación se muestra la sintaxis

foreach ($ in $)
(


)

En la sintaxis anterior, podemos ver, cada vez que se selecciona un elemento del Actualarray y ese elemento se procesará dentro del bucle foreach. Si $ está en blanco o no tiene ningún elemento dentro, no se ejecutará la declaración. PowerShell crea la variable $ automáticamente cuando se ejecuta el bucle Foreach. Por ejemplo, el bucle Foreach en el siguiente ejemplo muestra los valores en la matriz $ students. En el bucle for, necesitábamos escribir lógica para verificar si la matriz está vacía o no, el bucle foreach ejecuta el bloque de instrucciones si hay algún elemento dentro de la matriz.

Código:

$students = ""
PS /home/ranjan> foreach ($student in $students)
(
Write-Host $student
)
output nothing, which means checking of array elements attributes are done internally by foreach loops.
$students = "ajay", "vijay", "ranjan", "akash", ”vikash”
foreach ($student in $students)
(
Write-Host $student
)

Pantallas de salida y código:

Diagrama de flujo para PowerShell ForEach Loop

A continuación se muestra el diagrama de flujo para PowerShell ForEach Loop:

Explicación del diagrama de flujo anterior: el diagrama de flujo anterior representa muy claramente el flujo. Una vez que la ejecución comienza primero, verificará si hay datos (verificando si el elemento está allí en la matriz) si su ciclo vacío se detendrá. Pero si hay datos allí, continuará la ejecución y ejecutará la declaración 1, la declaración 2, la declaración 3 hasta los últimos datos de la matriz. Una vez que Array obtenga el bucle vacío, detenga la ejecución.

Salida:

Explicación de la salida anterior: la pantalla de arriba muestra, si había dos atributos dentro de la matriz, se imprimía dos veces, hola, pero si hicimos $ students como una matriz vacía, no hay impresión hola, eso significa que en caso de que haya algún atributo disponible dentro de $ los alumnos hacen una matriz de lo que va a ejecutar el bloque de instrucciones, de lo contrario no se está ejecutando

¿Cómo funciona ForEach Loop en PowerShell?

Supongamos que tenemos 4 elementos y queremos multiplicar cada número por cinco. Supongamos que tenemos $ a, $ b, $ c, $ d y tenemos que multiplicar cada uno con 5, así que lo que haremos, mira el siguiente ejemplo:

Código de muestra:

$a=2, $b=4, $c=9, $d=5
$a * 5 =10, $b * $5=20, $c * 5=45, $d*5=25

De ahí obtuvimos nuestro resultado. Pero fue bueno hasta que tengamos solo 4 elementos para multiplicar por 5, supongamos que habrá 10000 elementos que deben multiplicarse por 5, entonces sería una tarea muy tediosa escribir para cada uno.

Entonces, ¿cuál sería una solución fácil para ello? Todo lo que tenemos que hacer es crear una matriz con todos nuestros elementos y pasar la matriz por foreach y multiplicar cada elemento por 5. Para multiplicar el número cinco a cada uno de los elementos de la matriz, debemos recorrer la matriz. utilizando el comando ForEach.

Aquí está el guión completo:

Código:

$a = 2, $b = 4, $c = 9, $d =5
$f = $a, $b, $c, $d
Foreach ($i in $f)
(
$i * 5
)

Salida:

Explicación del código anterior: en los ejemplos anteriores que podemos ver, definimos una variable $ f y le asignamos las 4 variables, lo que lo convierte en una matriz. Finalmente, lo pasamos del bucle foreach que nos dio un resultado de 10, 20, 45, 25. De esta manera, estamos haciendo nuestra vida más fácil, ya que en la vida real habría miles de registros que deberían modificarse, por lo que no podemos hacerlo uno por uno, por lo que estamos usando el bucle foreach para tratarlos. Simplemente ejecute una vez y modifique tantos como desee el registro.

Ejemplos en PowerShell ForEach Loop

A continuación se muestra el ejemplo en PowerShell ForEach Loop:

Ejemplo 1

Recorra una serie de cadenas que contienen los nombres de los estudiantes y encuentre la longitud de cada cadena dentro de la matriz.

Código:

$students = @("Ranjan", "Ajay", ”Vijay", "Sujit", "John", "Rakesh", ”Hari”)
foreach ($student in $students) (
"$student = " + $student.length
)

Salida: Ranjan = 6, Ajay = 4, Vijay = 5, Sujit = 5, John = 4, Rakesh = 6, Hari = 4.

Ejemplo # 2

Permíteme darte un ejemplo de la vida real: en los exámenes, has visto que 30 de 100 solían ser calificaciones aprobadas. Supongamos que hay faltas de estudiantes y hay una regla si un estudiante obtiene 27 puntos y le da 30 puntos, eso significa que solo debe agregar 3 puntos adicionales en sus 27 puntos. Así que recorremos una serie de calificaciones de los estudiantes y agregamos 3 marcas si sus calificaciones son 27 y les permitimos aprobar los exámenes, ya que 30 marcas son calificaciones aprobadas.

Código:

$marks (34, 39, 49, 12, 27, 80, 23, 88, 27)
foreach ($mark in $marks) (
if ($mark -eq 27) ( $mark+3 ) else( $num)
)

Resultado: había dos estudiantes, pero verificar manualmente en miles de miles de estudiantes por 27 puntos fue una tarea un poco tediosa que resolvimos.

Ejemplo # 3

Otro ejemplo, Encuentra todos los números entre 1 y 100 que son completamente divisibles por 10.

Código:

$numbers (1..100)
foreach ($number in $numbers)
(
if ( -not ($number % 10) )
(
"$number is totally divisible by 10"
)
)
10 is totally divisible by 10
20 is totally divisible by 10
30 is totally divisible by 10
40 is totally divisible by 10
50 is totally divisible by 10
60 is totally divisible by 10
70 is totally divisible by 10
80 is totally divisible by 10
90 is totally divisible by 10
100 is totally divisible by 10

Salida:

Conclusión

Para concluir, una declaración de bucle foreach nos permite ejecutar una declaración o grupo de declaraciones varias veces junto con verificar la disponibilidad de elementos en la matriz, lo que significa ejecutar la siguiente declaración si hay algún elemento. Los bucles Foreach solo se ejecutan si hay elementos dentro de la matriz, lo que lo hace diferente al bucle for.

Artículos recomendados

Esta es una guía de PowerShell ForEach Loop. Aquí discutimos ¿Cómo funciona ForEach Loop en PowerShell?, con diferentes ejemplos. También puede consultar nuestros otros artículos relacionados para obtener más información:

  1. Para bucle en R
  2. ¿Qué es PowerShell?
  3. Usos de Powershell
  4. Cómo instalar PowerShell
  5. Matriz en PowerShell | Ejemplos