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