about_Language_Keywords

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

TEMA

about_Language_Keywords

DESCRIPCIÓN BREVE

Describe las palabras clave del lenguaje de scripting de Windows PowerShell®.

DESCRIPCIÓN LARGA

Windows PowerShell tiene las siguientes palabras clave de lenguaje. Para más información, consulte el tema About de la palabra clave y la información que sigue a la tabla.

        Keyword            Reference
        -------            ---------
        Begin              about_Functions, about_Functions_Advanced
        Break              about_Break, about_Trap
        Catch              about_Try_Catch_Finally
        Continue           about_Continue, about_Trap
        Data               about_Data_Sections
        Do                 about_Do, about_While 
        DynamicParam       about_Functions_Advanced_Parameters
        Else               about_If 
        Elseif             about_If 
        End                about_Functions, about_Functions_Advanced_Methods
        Exit               Described in this topic.
        Filter             about_Functions
        Finally            about_Try_Catch_Finally
        For                about_For
        ForEach            about_ForEach
        From               Reserved for future use.
        Function           about_Functions, about_Functions_Advanced
        If                 about_If
        In                 about_ForEach
        InlineScript       about_InlineScript
        Parallel           about_Parallel, about_ForEach-Parallel
        Param              about_Functions
        Process            about_Functions, about_Functions_Advanced
        Return             about_Return
        Sequence           about_Sequence
        Switch             about_Switch
        Throw              about_Throw, about_Functions_Advanced_Methods
        Trap               about_Trap, about_Break, about_Try_Catch_Finally
        Try                about_Try_Catch_Finally
        Until              about_Do
        While              about_While, about_Do
        Workflow           about_Workflows

PALABRAS CLAVE DE LENGUAJE

      Begin 
      -----

Especifica una parte del cuerpo de una función, junto con las palabras clave DynamicParam, Process y End. La lista de instrucciones Begin se ejecuta una vez antes de que se reciban los objetos de la canalización.

Sintaxis:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Break
      -----

Hace que un script salga de un bucle.

Sintaxis:

          while (<condition>) {
              <statements>
                   ...
              break 
                   ...
              <statements> 
          }
      Catch
      -----

Especifica la lista de instrucciones que se debe ejecutar si se produce un error en la lista de instrucciones Try que la acompaña. Un tipo de error requiere corchetes. El segundo par de corchetes indica que el tipo de error es opcional.

Sintaxis:

          try {<statement list>}
          catch [[<error type>]] {<statement list>}
      Continue
      --------

Hace que un script deje de ejecutar un bucle y vuelva a la condición. Si se cumple la condición, el script comienza el bucle de nuevo.

Sintaxis:

          while (<condition>) {
              <statements>
                  ...
              continue 
                  ...
              <statements> 
          }
      Data   
      ----

En un script, define una sección que aísla los datos de la lógica del script. También puede incluir instrucciones If y algunos comandos limitados.

Sintaxis:

      data <variable> [-supportedCommand <cmdlet-name>] {<permitted content>}
      Do   
      --

Se usa con la palabra clave While o Until, como construcción de bucle. Windows PowerShell ejecuta la lista de instrucciones al menos una vez, a diferencia de los bucles que usan While.

Sintaxis:

          do {<statement list>} while (<condition>)

          do {<statement list>} until (<condition>)
      DynamicParam
      ------------

Especifica una parte del cuerpo de una función, junto con las palabras clave Begin, Process y End. Los parámetros dinámicos se agregan en el tiempo de ejecución.

Sintaxis:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Else
      ----

Se usa con la palabra clave If para especificar la lista de instrucciones predeterminada.

Sintaxis:

          if (<condition>) {<statement list>}
          else {<statement list>}
      Elseif
      ------

Se usa con las palabras clave If y Else para especificar condiciones adicionales. La palabra clave Else es opcional.

Sintaxis:

          if (<condition>) {<statement list>}
          elseif (<condition>) {<statement list>}
          else {<statement list>}
      End
      ---

Especifica una parte del cuerpo de una función, junto con las palabras clave DynamicParam, Begin y End. La lista de instrucciones End se ejecuta una vez después de la recepción de todos los objetos de la canalización.

Sintaxis:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Exit
      ----

Hace que Windows PowerShell salga de un script o una instancia de Windows PowerShell.

Si ejecuta "powershell.exe –File <ruta a un script>", solo puede establecer la variable %ERRORLEVEL% en un valor distinto de cero utilizando la instrucción exit. En el ejemplo siguiente, el usuario establece el valor de la variable de nivel de error en 4 escribiendo "exit 4".

          C:\Users\bruce\documents\test>type test.ps1
          1
          2
          3
          exit 4

          C:\Users\bruce\documents\test>powershell -file ./test.ps1
          1
          2
          3

          C:\Users\bruce\documents\test>echo %ERRORLEVEL%
          4

Si usa powershell.exe con el parámetro File, el propio archivo .ps1 (script) debe incluir instrucciones para tratar los errores o excepciones que se produzcan mientras se ejecuta el script. Solo debe usar la instrucción exit para indicar el estado posterior a la ejecución del script.

Sintaxis:

          exit
          exit <exit code>
      Filter 
      ------

Especifica una función en la que la lista de instrucciones se ejecuta una vez para cada objeto de entrada. Tiene el mismo efecto que una función que contenga solo un bloque Process.

Sintaxis:

          filter <name> {<statement list>}
      Finally
      -------

Define una lista de instrucciones que se ejecuta después de instrucciones asociadas con Try y Catch. Una lista de instrucciones Finally se ejecuta incluso aunque pulse CTRL+C para salir de un script o use la palabra clave Exit en el script.

Sintaxis:

          try {<statement list>}
          catch [<error type] {<statement list>}
          finally {<statement list>}
      For   
      ---

Define un bucle usando una condición.

Sintaxis:

          for (<initialize>; <condition>; <iterate>) {<statement list>}
      ForEach
      -------

Define un bucle usando todos los miembros de una colección.

Sintaxis:

          ForEach (<item> in <collection>){<statement list>}
      From
      -----

Reservado para uso futuro.

      Function
      --------

Crea una lista de instrucciones con nombre de código reutilizable. Puede asignar un nombre al ámbito al que pertenece una función. Puede especificar uno o varios parámetros con nombre mediante la palabra clave Param. Dentro de la lista de instrucciones de la función puede incluir las listas de instrucciones DynamicParam, Begin, Process y End.

Sintaxis:

          function [<scope:>]<name> { 
              param ([type]<$pname1> [, [type]<$pname2>])
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }

También puede definir uno o más parámetros fuera de la lista de instrucciones después del nombre de función.

Sintaxis:

          function [<scope:>]<name> [([type]<$pname1>, [[type]<$pname2>])] { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      If
      --

Define una instrucción condicional.

Sintaxis:

          if (<condition>) {<statement list>}
      In
      --

Se usa en una instrucción ForEach para crear un bucle que usa todos los miembros de una colección.

Sintaxis:

          ForEach (<item> in <collection>){<statement list>}
      InlineScript
      ------------

Ejecuta comandos de flujo de trabajo en una sesión de Windows PowerShell compartida. Esta palabra clave solo es válida en un flujo de trabajo de Windows PowerShell.

Sintaxis:

          workflow <verb>-<noun>
          { 
              InlineScript
              {
                  <Command/Expression>
                  ...
              }
          }

La palabra clave InlineScript indica una actividad InlineScript, que ejecuta comandos en una sesión compartida estándar (sin flujo de trabajo). Puede usar la palabra clave InlineScript para ejecutar comandos que, de lo contrario, no serían válidos en un flujo de trabajo y para ejecutar comandos que comparten datos. De forma predeterminada, los comandos de un bloque de script InlineScript se ejecutan en un proceso independiente.

Para más información, consulte about_InlineScript y Ejecutar comandos de Windows PowerShell en un flujo de trabajo (https://technet.microsoft.com/library/jj574197.aspx).

      Param
      -----

Define los parámetros en una función.

Sintaxis:

          function [<scope:>]<name> {
              param ([type]<$pname1>[, [[type]<$pname2>]])
              <statement list>
          }
      Parallel
      --------

Ejecuta comandos de flujo de trabajo simultáneamente y en un orden no definido. Esta palabra clave solo es válida en un flujo de trabajo de Windows PowerShell.

La palabra clave Parallel indica un bloque de script Parallel. Los comandos de un bloque de script Parallel se pueden ejecutar al mismo tiempo y en cualquier orden. Esta característica mejora considerablemente el rendimiento de un flujo de trabajo.

Sintaxis:

          workflow <verb>-<noun>
          { 
              Parallel
              {
                  <Activity>
                  <Activity>
                  …            
              }
          }

El parámetro Parallel de la palabra clave ForEach procesa los elementos de una colección en paralelo. Las actividades en el bloque de script se ejecutan secuencialmente en cada elemento, pero el bloque de script se puede ejecutar en varios elementos al mismo tiempo y los elementos se procesan en un orden indefinido.

Sintaxis:

          workflow <verb>-<noun>
          { 
              ForEach -Parallel (<item> in <collection>)
              {
                  <Activity>
                  <Activity>
                  ...
              }
          }

Para más información, consulte about_Parallel y about_ForEach-Parallel.

      Process
      -------

Especifica una parte del cuerpo de una función, junto con las palabras clave DynamicParam, Begin y End. Cuando una lista de instrucciones Process recibe la entrada de la canalización, la lista de instrucciones Process se ejecuta una vez por cada elemento de la canalización. Si la canalización no ofrece ningún objeto, la lista de instrucciones Process no se ejecuta. Si el comando es el primer comando en la canalización, la lista de instrucciones Process ejecuta una vez.

Sintaxis:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Return 
      ------

Hace que Windows PowerShell salga del ámbito actual, como un script o una función, y escribe la expresión opcional en la salida.

Sintaxis:

          return [<expression>]
      Sequence
      --------

Ejecuta comandos de flujo de trabajo de forma secuencial en un bloque de script Parallel. Esta palabra clave solo es válida en un flujo de trabajo de Windows PowerShell.

Sintaxis:

          workflow <verb>-<noun>
          { 
              Parallel
              {
                  Sequence
                  {
                      <Activity>
                  }
              }
          }

La palabra clave Sequence crea un bloque de secuencia dentro de un bloque de script Parallel. Los comandos del bloque de script Sequence se ejecutan secuencialmente y en el orden definido.

Para más información, consulte about_Sequence.

      Switch
      ------

Especifica una variedad de acciones que se deben realizar en los elementos de la canalización o de un archivo. Puede usar cualquiera de los siguientes modelos de sintaxis.

Sintaxis 1:

          switch [-regex|-wildcard|-exact][-casesensitive] ( pipeline )
    
          { 
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
                    ...
              default {<statement list>}
          }

Sintaxis 2:

          switch [-regex|-wildcard|-exact][-casesensitive] -file filename
          { 
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
                    ...
              default {<statement list>}
          }
      Throw
      -----

Produce un objeto como un error.

Sintaxis:

          throw [<object>]
      Trap 
      ----

Define una lista de instrucciones que se debe ejecutar cuando se produce un error. Un tipo de error requiere corchetes. El segundo par de corchetes indica que el tipo de error es opcional.

Sintaxis:

          trap [[<error type>]] {<statement list>}
      Try
      ---

Define una lista de instrucciones para buscar errores mientras se ejecutan las instrucciones. Si se produce un error, Windows PowerShell continúa ejecutándose en una instrucción Catch o Finally. Un tipo de error requiere corchetes. El segundo par de corchetes indica que el tipo de error es opcional.

Sintaxis:

          try {<statement list>}
          catch [[<error type]] {<statement list>}
          finally {<statement list>}
      Until
      -----

Se usa en una instrucción Do como una construcción de bucle en la que la lista de instrucciones se ejecuta al menos una vez.

Sintaxis:

          do {<statement list>} until (<condition>)
      While
      -----

Se usa en una instrucción Do como una construcción de bucle en la que la lista de instrucciones se ejecuta al menos una vez.

Sintaxis:

          do {<statement list>} while (<condition>)
      Workflow
      --------

Crea un flujo de trabajo de Windows PowerShell basado en scripts, es decir, un flujo de trabajo escrito en el lenguaje de Windows PowerShell.

Un flujo de trabajo de Windows PowerShell es un tipo de comando de Windows PowerShell admitido por Windows PowerShell y Windows Workflow Foundation. Los flujos de trabajo están diseñados para las tareas complejas y de larga ejecución que afectan a varios equipos. Los flujos de trabajo se pueden recuperar si se interrumpen, por ejemplo, a causa de un fallo en la red, y se pueden suspender y reanudar sin perder el estado ni los datos.

Los flujos de trabajo pueden escribirse en XAML, el lenguaje nativo de Windows Workflow Foundation, o en el lenguaje de Windows PowerShell.

La sintaxis de un flujo de trabajo basado en scripts es similar a la sintaxis de una función. Sin embargo, la unidad de ejecución de un flujo de trabajo es una actividad, en lugar de un comando. Los cmdlets (y otros comandos) que se usan en los flujos de trabajo basados en scripts se convierten implícitamente en actividades.

Algunos elementos del lenguaje que sí se permiten en los scripts, además de algunas funciones no están permitidos en los flujos de trabajo. De forma similar, los flujos de trabajo pueden incluir elementos que no se encuentran en scripts y funciones, como "puntos de persistencia" (puntos de control), suspensión automática y procesamiento en paralelo. Además, todos los flujos de trabajo tienen un conjunto de parámetros comunes que Windows PowerShell agrega cuando se usa la palabra clave Workflow.

Sintaxis:

          workflow <Verb-Noun> { 
              param ([type]<$pname1> [, [type]<$pname2>])
              <statement list>
          }

          workflow <verb-noun> 
          {
              [CmdletBinding(<Attributes>)]
               Param
               (
                   [Parameter(<Arguments>)]                   
                   $Param1
               )
              <statement list>
          }

Para más información sobre los flujos de trabajo, consulte about_Workflows e "Introducción al flujo de trabajo de Windows PowerShell" (https://go.microsoft.com/fwlink/?LinkID=252592) en la biblioteca de TechNet.

VEA TAMBIÉN

about_Escape_Characters

about_Special_Characters

about_Wildcards