РАЗДЕЛ
    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




Содержание