TEMA
    about_Script_Blocks

DESCRIPCIÓN BREVE
    Define lo que es un bloque de script y explica cómo usar los bloques 
    de script en el lenguaje de programación de Windows PowerShell.


DESCRIPCIÓN DETALLADA
    En el lenguaje de programación de Windows PowerShell, un bloque 
    de script es una colección de instrucciones o expresiones que se 
    pueden usar como una sola unidad. Un bloque de script puede aceptar 
    argumentos y valores devueltos.

    Sintácticamente, un bloque de script es una lista de instrucciones 
    entre llaves, tal y como se muestra en la sintaxis siguiente:


        {<lista de instrucciones>}


    Un bloque de script devuelve el resultado de todos los comandos 
    del bloque de script como un solo objeto o como una matriz.

    Al igual que las funciones, un bloque de script puede incluir 
    parámetros. Use la palabra clave Param para asignar parámetros 
    con nombre, tal y como se indica en la sintaxis siguiente: 


        {
            param ([tipo]$parameter1 [,[tipo]$parameter2]) 
            <lista de instrucciones>
        }


    En un bloque de script, a diferencia de las funciones, no se pueden 
    especificar parámetros fuera de las llaves.


    Al igual que las funciones, los bloques de script pueden incluir las 
    palabras clave DynamicParam, Begin, Process y End. Para obtener más 
    información, vea about_Functions y about_Functions_Advanced.


  Usar bloques de script

      Un bloque de script es una instancia de un tipo de Microsoft .NET 
      Framework (System.Management.Automation.ScriptBlock). Los comandos 
      pueden tener valores de parámetro de bloque de script. Por ejemplo, 
      el cmdlet Invoke-Command tiene un parámetro ScriptBlock que toma un 
      valor de bloque de script, tal y como se muestra en este ejemplo:


          C:\PS> invoke-command -scriptblock { get-process }
          Handles  NPM(K)    PM(K)     WS(K) VM(M)   CPU(s)     Id ProcessName
          -------  ------    -----     ----- -----   ------     -- -----------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              -----------            
              999      28    39100     45020   262    15.88   1844 communicator
              721      28    32696     36536   222    20.84   4028 explorer   
          . . .           


      El bloque de script que se usa como valor puede ser más 
      complicado, tal y como se muestra en el ejemplo siguiente:


          C:\PS> invoke-command -scriptblock { param ($uu = "Parámetro"); 
              "$uu asignado." } 
          Parámetro asignado.


      El bloque de script en el ejemplo anterior usa la palabra clave 
      Param para crear un parámetro con un valor predeterminado. En 
      el ejemplo siguiente se utiliza el parámetro Args del cmdlet Invoke-
      Command para asignar otro valor al parámetro:


          C:\PS> invoke-command -scriptblock {param ($uu = "Parámetro"); 
              "$uu asignado."} -args "Otro valor" 
          Otro valor asignado.


      Se puede asignar un bloque de script a una variable, tal y como 
      se muestra en el ejemplo siguiente:


          C:\PS> $a = {param ($uu = "Parámetro"); "$uu asignado."}


      Se puede usar la variable con un cmdlet como Invoke-Command, 
      tal y como se indica en el ejemplo siguiente:


          C:\PS> invoke-command -scriptblock $a -args "Otro valor"
          Otro valor asignado.


      Se puede ejecutar un bloque de script asignado a una variable 
      mediante el operador de llamada (&), tal y como se muestra en 
      el ejemplo siguiente:


          C:\PS> &$a 
          Parámetro asignado.


      Asimismo, se puede proporcionar un parámetro al bloque de 
      script, tal y como se muestra en el ejemplo siguiente:


          C:\PS> &$a "Otro valor"
          Otro valor asignado.


      Si desea asignar a una variable el valor creado por un bloque 
      de script, use el operador de llamada para ejecutar directamente 
      el bloque de script, tal y como se muestra en el ejemplo siguiente:


          C:\PS> $a = &{param ($uu = "Parámetro"); "$uu asignado."}
          C:\PS> $a
          Parámetro asignado.


      Para obtener más información sobre el operador de llamada, vea about_Operators.


VEA TAMBIÉN
    about_Functions
    about_Functions_Advanced
    about_Operators




Tabla de contenido