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