РАЗДЕЛ
	about_Hash_Tables

КРАТКОЕ ОПИСАНИЕ
	Описывает, как создавать, использовать и сортировать хэш-таблицы 
	в Windows PowerShell.


ПОЛНОЕ ОПИСАНИЕ
	Хэш-таблица, также называемая словарем или массивом ассоциативных 
	элементов, представляет собой компактную структуру данных, в которой 
	хранится одна или несколько пар "имя-значение". Например, хэш-таблица 
	может содержать набор имен и идентификаторов сотрудников, имен 
	компьютеров и IP-адресов или идентификаторов сообщений и текстов 
	сообщений.
 

	Хэш-таблицы используются довольно часто, потому что они позволяют 
	эффективно находить и извлекать данные. В Windows PowerShell с 
	помощью хэш-таблиц можно хранить списки или создавать вычисляемые 
	свойства. Кроме того, в Windows PowerShell имеется командлет 
	ConvertFrom-StringData, который преобразует строки в хэш-таблицу.


  Создание хэш-таблиц
	Элементы в хэш-таблице организуются в пары "имя-значение", например:


		Msg1="Please enter your password."
		Msg2="The path parameter is required." 
		Msg3="The alias of Get-Command is gcm." 

	Значения сопоставляются или ассоциируются с именами, поэтому в 
	ответ на имя среда Windows PowerShell возвращает значение.


	В Windows PowerShell синтаксис хэш-таблиц имеет следующий вид:

 
		@{ <имя> = <значение>; [<имя> = <значение> ] ...}


	При создании хэш-таблицы необходимо соблюдать следующие правила:


		- начинайте хэш-таблицу со знака "@";

		- заключайте хэш-таблицу в фигурные скобки ({});

		- в качестве содержимого хэш-таблицы вводите одну или более 
			пар "имя-значение";

		- используйте знак "равно" (=), чтобы отделять имена от 
			значений;

		- чтобы разделять пары "имя-значение", используйте точку с 
			запятой (;);

		- если имя или значение содержит пробелы, заключите его в 
			кавычки.


	Например, хэш-таблица для приведенных выше сообщений выглядит 
	следующим образом:


		@{
		Msg1="Please enter your password.";
		Msg2="The path parameter is required."; 
		Msg3="The alias of Get-Command is gcm."; }


	Чтобы хэш-таблицу можно было использовать в скриптах и 
	командах, сохраните ее в переменной. Значением переменной 
	является объект хэш-таблицы (System.Collections.Hashtable), а 
	имена каждой из пар "имя-значение" являются свойствами объекта хэш-
	таблицы.


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


		C:\PS> $a = @{
		>> Msg1="Please enter your password.";
		>> Msg2="The path parameter is required.";
		>> Msg3="The alias of Get-Command is gcm.";
		>> }



		C:\PS> $a
		Name						 Value
		----						 -----
		Msg1					Please enter your password.
		Msg3					The alias of Get-Command is gcm.
		Msg2					The path parameter is required.

		C:\PS> $a.Msg1
		Please enter your password.


	Хэш-таблицы не ограничиваются одним типом данных. В хэш-таблицу 
	можно вводить данные любого типа, а в одной хэш-таблице можно 
	объединять данные различных типов. Например, можно создать 
	хэш-таблицу, которая содержит целое число, вызов командлета и 
	строку.


  Сортировка хэш-таблиц
	Для сортировки хэш-таблицы по алфавиту по ключам или по значениям, 
	используется метод хэш-таблиц GetEnumerator, которые получает ключи и 
	значения хэш-таблицы, после чего они сортируются с помощью командлета Sort-Object.


	Например, следующая команда сортирует хэш-таблицу в переменной $a по 
	алфавиту по ключам.


		C:\PS> $a.getenumerator() | sort-object -property key

		Name						 Value
		----						 -----
		Msg1						 Please enter your password.
		Msg2						 The path parameter is required.
		Msg3						 The alias of Get-Command is gcm.


	Следующая команда с помощью того же метода сортирует значения 
	хэш-таблицы по убыванию.


		C:\PS> $a.getenumerator() | sort-object -property value 
		-descending

		Name						 Value
		----						 -----
		Msg2						 The path parameter is required.
		Msg3						 The alias of Get-Command is gcm.
		Msg1						 Please enter your password.



  ConvertFrom-StringData
	Командлет ConvertFrom-StringData преобразует строку или 
	автономную строку, содержащую пары "имя-значение", в 
	хэш-таблицу. Командлет ConvertFrom-StringData можно безопасно 
	использовать в разделе Data скрипта, либо его можно использовать с 
	командлетом Import-LocalizedData, чтобы отображать сообщения с 
	помощью культуры пользовательского интерфейса текущего пользователя.


	Автономные строки особенно удобно использовать в случаях, когда 
	значения в хэш-таблице включают кавычки. (Дополнительные сведения об 
	автономных строках см. в разделе about_Quoting_Rules.)


	В следующем примере показано, как создать автономную строку из 
	пользовательских сообщений из предыдущего примера и с помощью командлета 
	ConvertFrom-StringData преобразовать эту строку в хэш-таблицу.


	Следующая команда создает автономную строку из пар 
	"имя-значение", а затем сохраняет ее в переменной $string.


		C:\PS> $string = @"
		Msg1="Please enter your password."
		Msg2="The path parameter is required." 
		Msg3="The alias of Get-Command is gcm."
		"@

   
	Эта команда с помощью командлета ConvertFrom-StringData преобразует 
	автономную строку в хэш-таблицу.


		C:\PS> convertfrom-stringdata $string

		Name						 Value
		----						 -----
		Msg3						 "The alias of Get-Command is gcm."
		Msg2						 "The path parameter is required."
		Msg1						 "Please enter your password."


СМ. ТАКЖЕ
	about_Arrays
	about_Quoting_Rules
	about_Script_Internationalization 
	ConvertFrom-StringData
	Import-LocalizedData