TEMA about_Data_Sections DESCRIPCIÓN BREVE Explica las secciones de datos, que aíslan cadenas de texto y otros datos de solo lectura de la lógica del script. DESCRIPCIÓN DETALLADA Los scripts diseñados para Windows PowerShell pueden tener una o más secciones de datos que solo contienen datos. Puede incluir una o más secciones de datos en cualquier script, función o función avanzada. El contenido de la sección de datos se limitan a un subconjunto especificado del lenguaje de scripting de Windows PowerShell. Separar los datos de la lógica del código facilita la identificación y administración tanto de la lógica como de los datos. Permite tener archivos de recursos de cadena independientes para el texto, como los mensajes de error y las cadenas de la Ayuda. También aísla la lógica del código, lo que facilita la seguridad y las pruebas de validación. En Windows PowerShell, la sección de datos se utiliza para admitir la internacionalización de los scripts. Las secciones de datos se pueden utilizar para facilitar el aislamiento, la localización y el procesamiento de las cadenas que se vayan a traducir a varios idiomas de interfaz de usuario (IU). La sección de datos es una característica de Windows PowerShell 2.0. Los scripts con secciones de datos no se ejecutan en Windows PowerShell 1.0 sin revisión. Sintaxis La sintaxis porque una sección de datos es la siguiente: DATA [-supportedCommand <nombre-del-cmdlet>] { <Contenido permitido> } Es necesario usar la palabra clave Data. No distingue entre mayúsculas y minúsculas. El contenido permitido se limita a los elementos siguientes: - Todos los operadores de Windows PowerShell, excepto -match - Las instrucciones If, Else y ElseIf - Las variables automáticas siguientes: $PsCulture, $PsUICulture, $True, $False y $Null - Comentarios - Canalizaciones - Instrucciones separadas por signos de punto y coma (;) - Literales, como el siguiente: a 1 1,2,3 "Windows PowerShell 2.0" @( "rojo", "verde", "azul" ) @{ a = 0x1; b = "magnífico"; c ="script" } [XML] @' <p> Hola mundo </p> '@ - Cmdlets permitidos en la sección de datos. De forma predeterminada, solamente se permite el cmdlet ConvertFrom-StringData. - Cmdlets que se permiten en una sección de datos mediante el parámetro SupportedCommand. Cuando se utiliza el cmdlet ConvertFrom-StringData en una sección de datos, puede incluir los pares de clave/valor en cadenas entre comillas simples o dobles, o en cadenas multilínea intercaladas en el código entre comillas simples o dobles. Sin embargo, las cadenas que contienen variables y subexpresiones se deben incluir en cadenas entre comillas simples o en cadenas multilínea intercaladas en el código entre 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 generan solamente datos. Se ha diseñado para permitir la inclusión de cmdlets y funciones en una sección de datos escrita o probada por el usuario. El valor de SupportedCommand es una lista de uno o más cmdlets o nombres de función separados por comas. Por ejemplo, la sección de datos siguiente incluye un cmdlet escrito por el usuario, Format-XML, que da formato a los datos de un archivo XML: DATA -supportedCommand Format-XML { Format-XML -strings string1, string2, string3 } Utilizar una sección de datos Para utilizar el contenido de una sección de datos, es preciso asignarlo a una variable y utilizar la notación de variable para tener acceso al contenido. Por ejemplo, la sección de datos siguiente contiene un comando ConvertFrom-StringData que convierte la cadena multilínea intercalada en el código 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 '@ } Para tener acceso a las claves y los valores de una tabla hash almacenada en $TextMsgs, se utilizan los comandos siguientes. $TextMsgs.Text001 $TextMsgs.Text002 EJEMPLOS Cadenas de datos simples. DATA { "Gracias por utilizar mi script Organize.pst de Windows PowerShell". "Se proporciona gratuitamente a la comunidad." "Agradezco sus observaciones y comentarios." } Cadenas que incluyen variables permitidas. DATA { if ($null) { "Si desea obtener ayuda para este cmdlet, escriba get-help new-dictionary." } } Una cadena multilínea intercalada en el código entre comillas simples que usa el cmdlet ConvertFrom-StringData: DATA { ConvertFrom-StringData -stringdata @' Text001 = Windows 7 Text002 = Windows Server 2008 R2 '@ } Una cadena multilínea intercalada en el código entre comillas dobles que usa el cmdlet ConvertFrom-StringData: DATA { ConvertFrom-StringData -stringdata @" Msg1 = Para comenzar, presione cualquier tecla. Msg2 = Para salir, escriba "salir". "@ } Una 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