РАЗДЕЛ
about_Data_Sections
КРАТКОЕ ОПИСАНИЕ
Описывает разделы Data, позволяющие отделить текстовые строки и
другие данные, предназначенные только для чтения, от логики скрипта.
ПОЛНОЕ ОПИСАНИЕ
Скрипты, предназначенные для Windows PowerShell, могут содержать
один или несколько разделов Data, в которых хранятся только
данные. Один или несколько разделов Data можно добавить в любой
скрипт, функцию или расширенную функцию. Содержимое раздела Data
ограничено определенным поднабором языка скриптов Windows PowerShell.
Отделение данных от логики кода упрощает идентификацию и
управление как логикой, так и данными. Это разделение позволяет
создавать отдельные файлы строковых ресурсов для вывода текстовых
сообщений, например сообщений об ошибках и строк справки. Кроме
того, такой подход позволяет выделить логику кода, что упрощает
обеспечение безопасности и проведение тестирования.
Раздел Data используется в Windows PowerShell 2.0 для поддержки
перевода скрипта на различные языки. Разделы Data можно использовать
для упрощения отделения, обнаружения и обработки строк, которые
будут переведены на различные языки пользовательского интерфейса.
Раздел Data является функцией Windows PowerShell 2.0. Скрипты с
разделами Data не будут работать в Windows PowerShell 1.0, если
не внести в них изменения.
Синтаксис
Для раздела Data используется следующий синтаксис:
DATA [-supportedCommand <имя_командлета>] {
<Разрешенное_содержимое>
}
Ключевое слово Data является обязательным. Регистр символов не имеет
значения.
Разрешенное содержимое ограничивается следующими элементами.
- Все операторы Windows PowerShell, за исключением -match
- Инструкции If, Else и ElseIf
- Следующие автоматические переменные: $PSCulture, $PSUICulture, $True,
$False и $Null.
- Комментарии
- Конвейеры
- Инструкции разделяются точкой с запятой (;).
- Литералы, например следующие:
a
1
1,2,3
"Windows PowerShell 2.0"
@( "red", "green", "blue" )
@{ a = 0x1; b = "great"; c ="script" }
[XML] @'
<p> Hello, World </p>
'@
- Командлеты, которые могут использоваться в разделе Data.
По умолчанию допускается использование только командлета
ConvertFrom-StringData.
- Командлеты, которые пользователь разрешил использовать в
разделе Data с использованием параметра SupportedCommand.
Если командлет ConvertFrom-StringData используется в разделе
Data, можно заключать пары "ключ-значение" в строки или
автономные строки в одиночных или двойных кавычках. Однако строки,
содержащие переменные и подвыражения, должны заключаться в строки
или автономные строки в одиночных кавычках, чтобы вместо переменных
не подставлялись значения, а подвыражения не могли выполняться.
SupportedCommand
Параметр SupportedCommand позволяет указать, что командлет или
функция только создает данные. Этот параметр позволяет пользователям
включать в раздел Data командлеты и функции, написанные или
протестированные пользователями.
В качестве значения параметра SupportedCommand используется
разделенный запятыми список имен командлетов и функций.
Например, в следующий раздел данных включен написанный пользователем
командлет, Format-XML, который форматирует данные в XML-файле.
DATA -supportedCommand Format-XML
{
Format-XML -strings string1, string2, string3
}
Использование раздела Data
Для использования содержимого раздела Data присвойте его
переменной и выполняйте доступ к содержимому с помощью
синтаксиса работы с переменными.
Например, в следующем разделе данных содержится команда ConvertFrom-
StringData, которая конвертирует автономную строку в хэш-таблицу.
Хэш-таблица сохраняется в переменной $TextMsgs.
Переменная $TextMsgs не является частью раздела данных.
$TextMsgs = DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Для доступа к ключам и значениям в хэш-таблице, сохраненной в
переменной $TextMsgs, используются следующие команды.
$TextMsgs.Text001
$TextMsgs.Text002
ПРИМЕРЫ
Простые строки данных.
DATA {
"Благодарю вас за использование моего скрипта Windows PowerShell Organize.pst."
"Он бесплатно предоставляется всем желающим."
"Буду благодарен за отзывы и комментарии."
}
Строки, содержащие разрешенные переменные..
DATA {
if ($null) {
"Для отображения справки для этого командлета введите команду 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 = Для запуска нажмите любую клавишу.
Msg2 = Для завершения работы введите "quit".
"@
}
Раздел данных, содержащий написанный пользователем командлет, который
генерирует данные.
DATA -supportedCommand Format-XML {
Format-XML -strings string1, string2, string3
}
СМ. ТАКЖЕ
about_Automatic_Variables
about_Comparison_Operators
about_Hash_Tables
about_If
about_Operators
about_Quoting_Rules
about_Script_Internationalization
ConvertFrom-StringData
Import-LocalizedData