about_Data_Sections

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

Insertar la introducción aquí.

TEMA

about_Data_Sections

DESCRIPCIÓN BREVE

Explica las secciones de datos, que aíslan las cadenas de texto y otros datos de solo lectura de la lógica de scripts.

DESCRIPCIÓN LARGA

Los scripts diseñados para Windows PowerShell® pueden tener una o varias secciones de datos que solo contengan datos. Puede incluir una o varias secciones de datos en cualquier script, función o función avanzada. El contenido de la sección de datos está restringido a un subconjunto específico del lenguaje de scripting de Windows PowerShell.

Al separar los datos de la lógica de código, es más fácil identificar y administrar tanto la lógica como los datos. Le permite disponer de distintos archivos de recursos de cadenas para el texto, como los mensajes de error y las cadenas de ayuda. También aísla la lógica de código, que facilita las pruebas de seguridad y de validación.

En Windows PowerShell, la sección de datos se usa para admitir la internacionalización de scripts. Puede usar las secciones de datos para que sea más fácil aislar, buscar y procesar cadenas que se traducirán a muchos idiomas de la interfaz de usuario (IU).

La sección de datos es una característica de Windows PowerShell 2.0. Los scripts que contengan secciones de datos no se ejecutarán en Windows PowerShell 1.0 sin revisión.

SINTAXIS

La sintaxis de una sección de datos es la siguiente:

DATA [-supportedCommand <cmdlet-name>] {

            <Permitted content>
        }

Se requiere la palabra clave Data. No distingue mayúsculas de minúsculas.

El contenido permitido se limita a los siguientes elementos:

- All Windows PowerShell operators, except -match 
           
        - If, Else, and ElseIf statements
           
- The following automatic variables: $PsCulture,  $PsUICulture,  $True,
          $False, and $Null

        - Comments

        - Pipelines

        - Statements separated by semicolons (;)

        - Literals, such as the following:

            a

            1
  
            1,2,3

            "Windows PowerShell 2.0"

            @( "red", "green", "blue" )

            @{ a = 0x1; b = "great"; c ="script" }

            [XML] @'
             <p> Hello, World </p>
            '@

        - Cmdlets that are permitted in a Data section. By default, only the 
          ConvertFrom-StringData cmdlet is permitted.

        - Cmdlets that you permit in a Data section by using the 
          SupportedCommand parameter.

Al usar el cmdlet ConvertFrom-StringData en una sección de datos, puede incluir los pares clave-valor en cadenas con comillas simples o comillas dobles o bien en cadenas "here-string" con comillas simples o comillas dobles. Sin embargo, las cadenas que contienen variables y subexpresiones deben incluirse en las cadenas con comillas simples o en cadenas "here-string" con comillas simples para que las variables no se expandan y las subexpresiones no sean ejecutables.

SUPPORTEDCOMMAND

El parámetro SupportedCommand permite indicar que un cmdlet o una función solo genera datos. Está diseñado para permitir que los usuarios incluyan cmdlets y funciones en una sección de datos que hayan escrito o probado.

El valor de SupportedCommand es una lista separada por comas de uno o varios nombres de cmdlet o de función.

Por ejemplo, la siguiente sección de datos incluye un cmdlet escrito por el usuario, con formato XML, que da formato a los datos en un archivo XML:

  DATA -supportedCommand Format-XML 
          {    
             Format-XML -strings string1, string2, string3
          }
       

USAR UNA SECCIÓN DE DATOS

Para usar el contenido de una sección de datos, asígnelo a una variable y use la notación de variables para tener acceso al contenido.

Por ejemplo, la siguiente sección de datos contiene un comando ConvertFrom-StringData que convierte la cadena "here-string" en una tabla hash. La tabla hash se asigna a la variable $TextMsgs.

La variable $TextMsgs no forma parte de la sección de datos.

$TextMsgs = DATA {
              ConvertFrom-StringData -stringdata @'
                Text001 = Windows 7
                Text002 = Windows Server 2008 R2
          '@
          }

Use los siguientes comandos para obtener acceso a las claves y valores de la tabla hash de $TextMsgs.

$TextMsgs.Text001      
          $TextMsgs.Text002

EJEMPLOS

Cadenas de datos simples.

        DATA {
            "Thank you for using my Windows PowerShell Organize.pst script."
            "It is provided free of charge to the community."
            "I appreciate your comments and feedback."
        }

Cadenas que incluyen variables permitidas.

        DATA {
            if ($null) {
       "To get help for this cmdlet, type get-help new-dictionary."
            }
        }

Cadena "here-string" con comillas simples que usa el cmdlet ConvertFrom-StringData:

        DATA {
          ConvertFrom-StringData -stringdata @'
            Text001 = Windows 7
            Text002 = Windows Server 2008 R2
        '@
        }

Cadena "here-string" con comillas dobles que usa el cmdlet ConvertFrom-StringData:

        DATA  {
          ConvertFrom-StringData -stringdata @"
            Msg1 = To start, press any key.
            Msg2 = To exit, type "quit".
        "@
        }

Sección de datos que incluye un cmdlet escrito por el usuario que genera datos:

DATA -supportedCommand Format-XML {    
           Format-XML -strings string1, string2, string3
        }

VEA TAMBIÉN

about_Automatic_Variables

about_Comparison_Operators

about_Hash_Tables

about_If

about_Operators

about_Quoting_Rules

about_Script_Internationalization

ConvertFrom-StringData

Import-LocalizedData