about_For

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

TEMA

about_For

DESCRIPCIÓN BREVE

Describe un comando de lenguaje que se puede usar para ejecutar instrucciones en función de una prueba condicional.

DESCRIPCIÓN LARGA

La instrucción For (también conocida como bucle For) es una construcción de lenguaje que puede usar para crear un bucle que ejecuta los comandos de un bloque de comandos mientras una condición especificada se evalúe como True.

Un uso típico del bucle For es recorrer en iteración una matriz de valores y operar en un subconjunto de estos valores. En la mayoría de los casos, si desea recorrer en iteración todos los valores de una matriz, considere la posibilidad de usar una instrucción Foreach.

Sintaxis

A continuación se muestra la sintaxis de la instrucción For.

          for (<init>; <condition>; <repeat>) 
          {<statement list>}

El marcador de posición <init> representa uno o más comandos, separados por comas, que se ejecutan antes de que comience el bucle. Normalmente, usará la parte <init> de la instrucción para crear e inicializar una variable con un valor inicial. Tenga en cuenta que la sintaxis de comas no funciona con instrucciones de asignación, como en el ejemplo siguiente:

          $ofs=",";$rs = "rs"; $cs = "cs"; for ($r = $rs, $c = $cs; $true;) 
          { "r is '$r' and c is '$c'"; break }

Esta variable será la base de la condición que se probará en la siguiente parte de la instrucción For.

El marcador de posición <condition> representa la parte de la instrucción For que se resuelve como valor booleano True o False. Windows PowerShell® evalúa la condición cada vez que se ejecuta el bucle For. Si la instrucción es True, se ejecutan los comandos del bloque de comandos y se vuelve a evaluar la instrucción. Si la condición sigue siendo True, se vuelven a ejecutar los comandos de la lista de la instrucción. El bucle se repite hasta que la condición sea False.

El marcador de posición <repeat> representa uno o varios comandos, separados por comas, que se ejecutan cada vez que se repite el bucle. Normalmente, se usa para modificar una variable que se prueba dentro de la parte <condition> de la instrucción.

El marcador de posición <statement list> representa un conjunto de uno o varios comandos que se ejecutan cada vez que se entra en un bucle o este se repite. El contenido de la lista de instrucciones se especifica entre llaves.

Ejemplos

Una instrucción For requiere, como mínimo, los paréntesis que rodean a la parte <init>, <condition> y <repeat> de la instrucción y un comando entre llaves en la parte <statement list> de la instrucción.

Tenga en cuenta que los próximos ejemplos muestran intencionadamente código fuera de la instrucción For. En los ejemplos que se muestran más adelante, el código se integra en la instrucción For.

Por ejemplo, la siguiente instrucción For muestra continuamente el valor de la variable $i hasta que salga de forma manual del comando pulsando CTRL+C.

          $i = 1
          for (;;){Write-Host $i}

Puede agregar comandos adicionales a la lista de instrucciones para que el valor de $i se incremente en 1 cada vez que se ejecuta el bucle, como se muestra en el ejemplo siguiente.

          for (;;){$i++; Write-Host $i}

Hasta que salga del comando pulsando CTRL+C, esta instrucción mostrará continuamente el valor de la variable $i mientras se incrementa en 1 cada vez que se ejecuta el bucle.

En lugar de cambiar el valor de la variable en la parte de la lista de instrucciones de la instrucción For, puede usar la parte <repeat> de la instrucción For en su lugar, como se indica a continuación.

          $i=1
          for (;;$i++){Write-Host $i}

Esta instrucción se repetirá indefinidamente hasta que salga del comando pulsando CTRL+C.

Estableciendo una condición (mediante la parte <condition> de la instrucción For), puede terminar el bucle For cuando la condición se evalúe como False. En el ejemplo siguiente, el bucle For se ejecuta mientras el valor de $i sea menor o igual que 10.

          $i=1
          for(;$i -le 10;$i++){Write-Host $i}

En lugar de crear e inicializar la variable fuera de la instrucción For, puede realizar esta tarea dentro del bucle For mediante la parte <init> de la instrucción For.

          for($i=1; $i -le 10; $i++){Write-Host $i}

Puede usar retornos de carro en lugar de punto y coma para delimitar las partes <init>, <condition> y <repeat> de la instrucción For. En el ejemplo siguiente se muestra la sintaxis de la instrucción For con esta forma alternativa.

        
            for (<init>
          <condition>
          <repeat>){
          <statement list>
          }

Esta forma alternativa de la instrucción For funciona en archivos de script de Windows PowerShell y en el símbolo del sistema de Windows PowerShell. Sin embargo, es más fácil de usar la sintaxis de la instrucción For con punto y coma escribiendo comandos interactivos en el símbolo del sistema.

El bucle For es más flexible que el bucle Foreach, porque permite incrementar los valores de una matriz o colección mediante patrones. En el ejemplo siguiente, la variable $i se incrementa en 2 en la parte <repeat> de la instrucción For.

          for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}

VEA TAMBIÉN

about_Comparison_Operators

about_Foreach