Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Краткое описание
Объясняет data разделы, которые изолируют текстовые строки и другие данные, доступные только для чтения, из логики скрипта.
Длинное описание
Скрипты, предназначенные для PowerShell, могут содержать один или несколько разделов data, содержащих только данные. Вы можете включить один или несколько разделов data в любой скрипт, функцию или расширенную функцию. Содержимое раздела data ограничено указанным подмножеством языка сценариев PowerShell.
Разделение данных от логики кода упрощает идентификацию и управление ими логикой и данными. Он позволяет использовать отдельные файлы ресурсов строки для текста, такие как сообщения об ошибках и строки справки. Он также изолирует логику кода, которая упрощает проверки безопасности и проверки.
В PowerShell можно использовать раздел data для поддержки интернационализации скриптов. Вы можете использовать разделы data, чтобы упростить изоляцию, поиск и обработку строк, которые можно преобразовать на другие языки.
Раздел data добавлен в компонент PowerShell 2.0.
Синтаксис
Синтаксис раздела data выглядит следующим образом:
data [<variable-name>] [-SupportedCommand <cmdlet-name>] {
<Permitted content>
}
Требуется ключевое слово data. Это не зависит от регистра. Разрешенное содержимое ограничено следующими элементами:
Все операторы PowerShell, кроме
-matchif, иelseelseifоператорыСледующие автоматические переменные:
$PSCulture, ,$PSUICulture$trueи$false$nullКомментарии
Pipelines
операторы, разделенные точкой с запятой (
;);Литералы, такие как:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } @' <p> Hello, World </p> '@Командлеты, разрешенные в
dataразделе по умолчанию. По умолчанию разрешен толькоConvertFrom-StringDataкомандлет.Командлеты, которые можно разрешить в разделе
dataс помощью параметра-SupportedCommand.
При использовании командлета ConvertFrom-StringData в разделе data пары «ключ-значение» можно заключать в строки в одинарных или двойных кавычках, а также в here-строки в одинарных или двойных кавычках. Однако строки, содержащие переменные и вложенные выражения, должны быть заключены в строки с одним кавычками или в одинарные строковые строки, чтобы переменные не были развернуты, а вложенные выражения не являются исполняемыми.
-SupportedCommand
Параметр SupportedCommand позволяет указать, что командлет или функция создает только данные. Он разработан для того, чтобы пользователи могли включать в раздел data командлеты и функции, которые они написали или протестировали.
Значение SupportedCommand — это разделенный запятыми список одного или нескольких имен командлетов или функций.
Например, следующий раздел data включает в себя командлет, написанный пользователем, Format-Xml, который форматирует данные в XML-файле:
data -SupportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
Использование раздела data
Чтобы использовать содержимое раздела data, назначьте его переменной и используйте нотацию переменной для доступа к содержимому.
Например, следующий раздел data содержит команду ConvertFrom-StringData, которая преобразует здесь строку в хэш-таблицу. Хэш-таблица назначается переменной $TextMsgs .
Переменная $TextMsgs не входит в раздел data.
$TextMsgs = data {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Чтобы получить доступ к ключам и значениям в хэш-таблице $TextMsgs, используйте следующие команды.
$TextMsgs.Text001
$TextMsgs.Text002
Кроме того, можно поместить имя переменной в определение раздела data. Например:
data TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
Результат совпадает с предыдущим примером.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Примеры
Простые строки данных.
data {
"Thank you for using my PowerShell Organize.pst script."
"It is provided free of charge to the community."
"I appreciate your comments and feedback."
}
Строки, включающие разрешенные переменные.
data {
if ($null) {
"To get help for this cmdlet, type Get-Help New-Dictionary."
}
}
Одна кавычка здесь- строка, использующая ConvertFrom-StringData командлет:
data {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Двойная кавычка здесь-строка, использующая ConvertFrom-StringData командлет:
data {
ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Раздел данных, содержащий написанный пользователем командлет, который создает данные:
data -SupportedCommand Format-Xml {
Format-Xml -Strings string1, string2, string3
}
См. также
PowerShell