РАЗДЕЛ
	about_Comparison_Operators

КРАТКОЕ ОПИСАНИЕ
	Описание операторов сравнения, используемых в Windows PowerShell.

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


	По умолчанию во всех операторах сравнения не учитывается реестр 
	символов. Для учета реестра символов в операторе сравнения 
	необходимо указать перед именем оператора букву "c".Например, 
	"-ceq" - это версия оператора "-eq", учитывающая реестр 
	символов. Чтобы отменить учет реестров символов в явном виде 
	укажите перед именем оператора букву "i". Например, "-ieq" - это 
	версия оператора "-eq", в которой явно отключен учет реестра символов.


	Все операторы сравнения, кроме операторов включения (-contains, 
	-notcontains) и операторов типа (-is, -isnot), возвращают 
	логическое значение, если в качестве входных данных оператора 
	(значение слева от оператора) используется одно значение 
	(скаляр). Если в качестве входных данных используется коллекция 
	значений, операторы включения и операторы типа возвращают 
	все соответствующие значения. Если в коллекции не найдено 
	соответствий, эти операторы не вернут ничего. Операторы 
	включения и типа всегда возвращают логическое значение.


	Оболочка Windows PowerShell поддерживает следующие операторы 
	сравнения.


	--eq
	Описание. Равенство. Распространяется на случай совпадения значений.
	Пример:


		C:\PS> "abc", "def" -eq "abc"
		abc


	-ne
	Описание. Неравенство. Распространяется на случай несовпадения значений.
	Пример:


		C:\PS> "abc", "def" -ne "abc"
		def


	-gt
	Описание. Больше.
	Пример:


		C:\PS> 8 -gt 6
		True



	-ge
	Описание. Больше или равно.
	Пример:


		C:\PS> 8 -ge 8
		True		 


	-lt
	Описание. Меньше.
	Пример:


		C:\PS> 8 -lt 6
		False


	-le
	Описание. Меньше или равно.
	Пример:


		C:\PS> 6 -le 8
		True

 
	-like
	Описание. Соответствие с использованием подстановочного знака (*).
	Пример:


		C:\PS> "Windows PowerShell" -like "*shell"
		True


	-notlike
	Описание. Несоответствие с использованием подстановочного знака (*).
	Пример:


		C:\PS> "Windows PowerShell" -notlike "*shell"
		False
			 

	-match 
	Описание. Соответствие строк с учетом регулярных выражений. 
	Если в качестве входных данных используется скалярное значение, 
	оператор заносит результат в автоматическую переменную 
	$Matches. Пример:

								
		C:\PS> "Sunday" -match "sun" 
		True 

		C:\PS> $matches 
		Имя  Значение 
		---  -------- 
		0	sun
 
 
	-notmatch
	Описание. Несоответствие строк. Используются регулярные выражения.
				 Если в качестве входных данных используется 
				 скалярное значение, оператор заносит результат в 
				 автоматическую переменную $Matches. 
	Пример:


		C:\PS> "Sunday" -notmatch "sun"
		False

		C:\PS> $matches 
		Имя   Значение 
		---   -------- 
		0	 sun

 
	-contains
	Описание. Оператор включения. Распространяется на случай 
	совпадения значений, которые не являются фрагментом значения. 
	Всегда возвращает логическое значение.
	Пример:


		C:PS> "abc", "def" -contains "def"
		True


	-notcontains
	Описание. Оператор включения. Не распространяется на случай 
	совпадения значений. Всегда возвращает логическое значение.
	Пример:


		C:PS> "Windows", "PowerShell" -notcontains "Shell"
		True
 

	-replace
	Описание. Оператор замены. Изменяет указанные элементы значения.
	Пример:


		C:\PS> "Get-Process" -replace "Get", "Stop"
		Stop-Process
			 

  Операторы равенства
	Операторы равенства (-eq, -ne) возвращают значение TRUE или 
	соответствующие элементы, если одно или несколько входных 
	значений совпадают с указанным шаблоном. Весь шаблон должен 
	соответствовать всему значению.


	В следующих примерах показано функционирование оператора равенства.


		C:PS> 1,2,3 -eq 2
		2

		C:PS> "PowerShell" -eq "Shell"
		False

		C:PS> "Windows", "PowerShell" -eq "Shell"
		C:PS> 

		C:\PS> "abc", "def", "123" -eq "def"
		def
 

  Операторы включения
	Операторы включения (-contains и -notcontains) сходны с операторами 
	равенства. Однако операторы включения всегда возвращают логическое 
	значение, даже если в качестве входных данных использовалась коллекция. 


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


		C:PS> 1,2,3 -contains 2
		True

		C:PS> "PowerShell" -contains "Shell"
		False

		C:PS> "Windows", "PowerShell" -contains "Shell"
		False

		C:\PS> "abc", "def", "123" -contains "def"
		True

		C:\PS> "true", "blue", "six" -contains "true"
		True
 

	В следующем примере продемонстрировано отличие операторов 
	включения от оператора равенства. Операторы включения всегда 
	возвращают значение TRUE при первом совпадении.
 

		C:\PS> 1,2,3,4,5,4,3,2,1 -eq 2
		2
		2

		C:\PS> 1,2,3,4,5,4,3,2,1 -contains 2
		True
 

	При обработке коллекции очень большого объема оператор 
	-contains возвращает результаты быстрее, чем оператор равенства.


  Операторы совпадения
	Операторы совпадения (-match и -notmatch) выполняют поиск 
	элементов, которые соответствуют или не соответствуют 
	указанному шаблону при использовании регулярных выражений. 

	Синтаксис:

		<string[]> -match <регулярное_выражение>
		<string[]> -notmatch <регулярное_выражение>


	Ниже показаны примеры использования оператора -match.


		C:\PS> "Windows", "PowerShell" -match ".shell"
		PowerShell

		C:\PS> (get-command get-member -syntax) -match "-view"
		True

		C:\PS> (get-command get-member -syntax) -notmatch "-path"
		True

		C:\PS> (get-content servers.txt) -match "^Server\d\d"
		Server01
		Server02

		 
	Операторы совпадения выполняют поиск только по строкам. Они не могут 
	выполнять поиск по массивам целых чисел и другим объектам. 

	Операторы -match и -nomatch заполняют автоматическую переменную 
	$Matches, если входные данные (аргумент с левой стороны) оператора 
	представляют собой один скалярный объект. Если входные данные 
	являются скаляром, операторы -match и -nomatch возвращают логическое 
	значение и устанавливают в качестве значения автоматической 
	переменной $Match совпавшие компоненты аргумента.

	Если входные данные являются коллекцией, операторы -match и -nomatch 
	возвращают соответствующие элементы коллекции, но не изменяют значение 
	автоматической переменной $Match.

	Например, следующая команда отправляет коллекцию строк в 
	оператор -match. Оператор -match возвращает элементы коллекции, 
	которые соответствуют шаблону. При этом значение автоматической 
	переменной $Matches не изменяется.

		C:\PS> "Sunday", "Monday", "Tuesday" -match "sun"
		Sunday

		C:\PS> $matches
		C:\PS>


	Напротив, следующая команда отправляет в оператор -match одну 
	строку. Оператор -match возвращает логическое значение и 
	изменяет значение автоматической переменной $Matches.

		C:\PS> "Sunday" -match "sun"
		True

		C:\PS> $matches

		Имя							Значение
		---							--------
		0							Sun


	Оператор -nomatch устанавливает значение автоматической 
	переменной $Matches, если входные данные являются скаляром, а 
	результат выполнения оператора равняется False, т. е. при 
	обнаружении совпадения.


		C:\PS> "Sunday" -notmatch "rain"
		True

		C:\PS> $matches
		C:\PS>
	
		C:\PS> "Sunday" -notmatch "day"
		False

		C:\PS> $matches
		C:\PS>

		Имя						 Значение
		---						 --------
		0							 day

	
  Оператор замены
	Оператор -replace заменяет часть исходного значения или все 
	значение целиком на указанное значение с использованием 
	регулярных выражений. Оператор -replace может оказаться полезным при 
	выполнении многих административных задач, например при переименовании 
	файлов. Например, следующая команда изменяет расширения всех файлов 
	GIF на JPG.
 

		Get-ChildItem | Rename-Item -NewName { $_ -replace 
		'.gif$','.jpg$' }

 
	Ниже описан синтаксис оператора -replace, при этому <оригинал> 
	соответствует символам, которые необходимо заменить, а <замена> 
	- символам, которыми необходимо заменить оригинал.


		<входные_данные> <оператор> <оригинал>, <замена> 


	По умолчанию оператор замены не учитывает регистр символов. 
	Для учета регистра символов используйте -creplace. Для явного 
	отключения учета регистра символов используйте -ireplace. 
	Рассмотрим следующие примеры.


		C:\PS> "book" -replace "B", "C"
		Cook
		C:\PS> "book" -ireplace "B", "C" 
		Cook
		C:\PS> "book" -creplace "B", "C"
		book
 

  Побитовые операторы
	Оболочка Windows PowerShell поддерживает стандартные побитовые 
	операторы, включая побитовое И (-band), побитовое ИЛИ и побитовое 
	исключающее ИЛИ (-bor и -bxor). Начиная с версии Windows PowerShell 
	2.0, все побитовые операторы работают с 64-разрядными целыми числами.


	Windows PowerShell поддерживает следующие побитовые операторы:


	Оператор  Описание					Пример  
	--------  --------------------------	-------------------
	-band	 Побитовое И				 C:\PS> 10 -band 3
											2
 
	-bor	Побитовое ИЛИ (включающее)	C:\PS> 10 -bor 3
											11

	-bxor	 Побитовое ИЛИ (исключающее)   C:\PS> 10 -bxor 3
											9
 
	Побитовые операторы используют двоичный формат значений. 
	Например, для числа 10 используется битовая структура 00001010 
	(с учетом 1 байта), а для числа 3 - 00000011. При использовании 
	побитового оператора для сравнения 10 и 3 выполняется сравнение 
	отдельных битов в каждом байте.
 

	При операции побитового И результирующий бит устанавливается в 
	1 только в том случае, если оба входных бита равняются 1.


		00001010   (10)
		00000011   ( 3)
		------------------ bAND
		00000010   ( 2)

 
	При операции побитового ИЛИ (включающего) результирующий бит 
	устанавливается в 1, если любой из входных битов или они оба 
	равняются 1. Результирующий бит устанавливается в 0 только в 
	том случае, если оба входных бита равняются 0.


		00001010   (10)
		00000011   ( 3)
		---------------- bOR (включающее ИЛИ)
		00001011   (11)


	При операции побитового ИЛИ (исключающего) результирующий бит 
	устанавливается в 1 только в том случае, если один из входных 
	битов равняется 1.


		00001010   (10)
		00000011   ( 3)
		---------------- bXOR (исключающее)
		00001001   ( 9)
 

СМ. ТАКЖЕ
	about_Operators
	about_Regular_Expressions
	about_Wildcards
	Compare-Object