Поделиться через


about_Data_Sections

Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0

Вставьте сюда введение.

РАЗДЕЛ

about_Data_Sections

КРАТКОЕ ОПИСАНИЕ

Описание разделов Data, которые отделяют текстовые строки и другие данные только для чтения от логики сценария.

ПОДРОБНОЕ ОПИСАНИЕ

Сценарии, которые предназначены для Windows PowerShell®, могут иметь один или несколько разделов Data, содержащих только данные. В любой сценарий, функцию или дополнительную функцию можно включить один или несколько разделов Data. Содержимое раздела Data ограничивается указанным подмножеством языка сценариев Windows PowerShell.

Отделение данных от логики кода упрощает процесс выявления логики и данных и управление ими. Вы можете иметь отдельные файлы строковых ресурсов для текста, например сообщения об ошибках и строки справки. В результате отделения также изолируется логика кода, что упрощает выполнение проверочных тестов и тестов на безопасность.

В Windows PowerShell раздел Data используется для поддержки интернационализации сценариев. С помощью разделов Data можно упростить процедуры изоляции, поиска и обработки строк, которые будут преобразованы на многие языки пользовательского интерфейса.

Раздел Data является компонентом Windows PowerShell 2.0. Сценарии с разделами Data не будут выполняться в Windows PowerShell 1.0 без исправления.

СИНТАКСИС

Синтаксис раздела Data выглядит следующим образом.

DATA [-supportedCommand <cmdlet-name>] {

            <Permitted content>
        }

Ключевое слово Data является обязательным. Оно указывается без учета регистра.

Разрешенное содержимое ограничено следующими элементами:

- 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.

При использовании командлета ConvertFrom-StringData в разделе Data можно поместить пары «ключ-значение» в строки, заключенные в одинарные или двойные кавычки, или в here-строки, заключенные в одинарные или двойные кавычки. Однако строки, содержащие переменные и подвыражения, должны быть заключены в строки в одинарных кавычках или в here-строки в одинарных кавычках, чтобы исключить расширение переменных и выполнение подвыражений.

SUPPORTEDCOMMAND

Параметр SupportedCommand позволяет указать, что командлет или функция выводят только данные. С его помощью пользователи могут включать командлеты и функции в раздел Data, который они написали или протестировали.

Значением параметра SupportedCommand является разделенный запятыми список из одного или нескольких имен командлетов или функций.

Например, следующий раздел Data содержит написанный пользователем командлет Format-XML, который форматирует данные в XML-файле:

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

ИСПОЛЬЗОВАНИЕ РАЗДЕЛА DATA

Чтобы использовать содержимое раздела Data, присвойте его переменной и используйте нотацию переменной для доступа к содержимому.

Например, следующий раздел Data содержит команду ConvertFrom-StringData, которая преобразует here-строку в хэш-таблицу. Хэш-таблица назначается переменной $TextMsgs.

Переменная $TextMsgs не является частью раздела Data.

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

Для доступа к ключам и значениям в хэш-таблице в $TextMsgs используйте следующие команды.

$TextMsgs.Text001      
          $TextMsgs.Text002

ПРИМЕРЫ

Простые строки данных.

        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."
        }

Строки, содержащие разрешенные переменные.

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

Заключенная в одинарные кавычки here-строка, которая использует командлет ConvertFrom-StringData:

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

Заключенная в двойные кавычки here-строка, которая использует командлет ConvertFrom-StringData:

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

Раздел Data, который содержит написанный пользователем командлет, создающий данные:

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