Select-String
Выполняет поиск текста в строках и файлах.
Синтаксис
File (по умолчанию)
Select-String
[-Pattern] <String[]>
[-Path] <String[]>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
ObjectRaw
Select-String
[-Pattern] <String[]>
-InputObject <PSObject>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Object
Select-String
[-Pattern] <String[]>
-InputObject <PSObject>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
FileRaw
Select-String
[-Pattern] <String[]>
[-Path] <String[]>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
LiteralFileRaw
Select-String
[-Pattern] <String[]>
-LiteralPath <String[]>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
LiteralFile
Select-String
[-Pattern] <String[]>
-LiteralPath <String[]>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Описание
Командлет Select-String
использует сопоставление регулярных выражений для поиска текстовых шаблонов в входных строках и файлах. Вы можете использовать Select-String
аналогичные grep
функции в Unix или findstr.exe
Windows.
Select-String
основан на строках текста. По умолчанию Select-String
находит первое совпадение в каждой строке и для каждого совпадения отображает имя файла, номер строки и весь текст в строке, содержащей совпадение. Вы можете найти Select-String
несколько совпадений в строке, отобразить текст до и после совпадения или отобразить логическое значение (True или False), указывающее, найдено ли совпадение.
Select-String
может отображать все текстовые совпадения или останавливаться после первого совпадения в каждом входном файле.
Select-String
может использоваться для отображения всего текста, который не соответствует указанному шаблону.
Вы также можете указать, что Select-String
следует ожидать кодировки определенного символа, например, при поиске файлов с текстом Юникода.
Select-String
использует метку байтового порядка (BOM) для обнаружения формата кодирования файла. Если файл не имеет BOM, предполагается, что кодировка — UTF8.
Примеры
Пример 1: Найдите совпадение, чувствительное к регистру
В этом примере выполняется чувствительное к регистру сопоставление текста, отправленного по конвейеру в командлет.Select-String
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Текстовые строки Hello и HELLO отправляются вниз по конвейеру в командлет.Select-String
Select-String
использует параметр Pattern для указания HELLO.
Параметр CaseSensitive указывает, что регистр должен соответствовать только шаблону в верхнем регистре.
SimpleMatch является необязательным параметром и указывает, что строка в шаблоне не интерпретируется как регулярное выражение.
Select-String
отображает HELLO в консоли PowerShell.
Пример 2: Поиск совпадений в текстовых файлах
Эта команда выполняет поиск во всех файлах с расширением .txt
имени в текущем каталоге. На выходе отображаются строки в тех файлах, которые содержат указанную строку.
Get-Alias | Out-File -FilePath .\Alias.txt
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\*.txt -Pattern 'Get-'
Alias.txt:8:Alias cat -> Get-Content
Alias.txt:28:Alias dir -> Get-ChildItem
Alias.txt:43:Alias gal -> Get-Alias
Command.txt:966:Cmdlet Get-Acl
Command.txt:967:Cmdlet Get-Alias
В этом примере Get-Alias
и Get-Command
используются с Out-File
командлетом для создания двух текстовых файлов в текущем каталоге, Alias.txt и Command.txt.
Select-String
использует параметр Path с подстановочным знаком asterisk(*
) для поиска всех файлов в текущем каталоге с расширением .txt
имени файла .
Параметр Pattern указывает текст, соответствующий Get-.
Select-String
отображает выходные данные в консоли PowerShell. Имя файла и номер строки предшествуют каждой строке содержимого, содержащей совпадение для параметра Pattern .
Пример 3: Найдите совпадение с шаблоном
В этом примере выполняется поиск нескольких файлов для поиска совпадений для указанного шаблона. В шаблоне используется квантификатор регулярных выражений. Дополнительные сведения см. в about_Regular_Expressions.
Select-String -Path "$PSHOME\en-US\*.txt" -Pattern '\?'
C:\Program Files\PowerShell\6\en-US\default.help.txt:27: beginning at https://go.microsoft.com/fwlink/?LinkID=108518.
C:\Program Files\PowerShell\6\en-US\default.help.txt:50: or go to: https://go.microsoft.com/fwlink/?LinkID=210614
Командлет Select-String
использует два параметра: Path и Pattern.
Параметр Path использует переменную$PSHOME
, указывающую каталог PowerShell. Остальная часть пути включает в себя подкаталог en-US и указывает каждый *.txt
файл в каталоге.
Параметр Pattern указывает на соответствие вопросительному знаку (?
) в каждом файле. Обратная косая черта (\
) используется в качестве escape-символа и необходима, поскольку вопросительный знак (?
) является квантором регулярного выражения.
Select-String
отображает выходные данные в консоли PowerShell. Имя файла и номер строки предшествуют каждой строке содержимого, содержащей совпадение для параметра Pattern .
Пример 4: Использование Select-String в функции
В этом примере создается функция для поиска шаблона в файлах справки PowerShell. В этом примере функция существует только в сеансе PowerShell. Когда сеанс PowerShell закрывается, функция удаляется. Дополнительные сведения см. в about_Functions.
function Search-Help
{
$PSHelp = "$PSHOME\en-US\*.txt"
Select-String -Path $PSHelp -Pattern 'About_'
}
Search-Help
C:\Program Files\PowerShell\7\en-US\default.help.txt:67: The titles of conceptual topics begin with "About_".
C:\Program Files\PowerShell\7\en-US\default.help.txt:70: Get-Help About_<topic-name>
C:\Program Files\PowerShell\7\en-US\default.help.txt:93: Get-Help About_Modules : Displays help about PowerShell modules.
C:\Program Files\PowerShell\7\en-US\default.help.txt:97: about_Updatable_Help
Функция создается в командной строке PowerShell. Ключевое function
слово использует имя Search-Help
.
Нажмите клавишу Enter, чтобы начать добавление операторов в функцию. В запросе >>
добавьте каждую инструкцию и нажмите клавишу ВВОД, как показано в примере. После добавления закрывающей скобки вы вернетесь к командной строке PowerShell.
Функция содержит две команды. В $PSHelp
переменной хранится путь к файлам справки PowerShell.
$PSHOME
— это каталог установки PowerShell с подкаталогом en-US , который указывает каждый *.txt
файл в каталоге.
Команда Select-String
в функции использует параметры Path и Pattern .
Параметр Path использует $PSHelp
переменную для получения пути.
Параметр Pattern использует строку About_ в качестве критерия поиска.
Чтобы запустить функцию, введите Search-Help
. Команда функции Select-String
отображает выходные данные в консоли PowerShell.
Пример 5: Поиск строки в журнале событий Windows
В этом примере выполняется поиск строки в журнале событий Windows. Переменная $_
представляет текущий объект в конвейере. Дополнительные сведения см. в разделе about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.Message} -Pattern 'Failed'
Командлет Get-WinEvent
использует параметр LogName для указания журнала приложения.
Параметр MaxEvents получает 50 самых последних событий из журнала. Содержимое журнала хранится в переменной с именем $Events
.
Переменная $Events
отправляется по конвейеру командлету Select-String
.
Select-String
использует параметр InputObject . Переменная $_
представляет текущий объект и Message
является свойством события. Параметр Pattern указывает строку failed и выполняет поиск совпадений в $_.Message
.
Select-String
отображает выходные данные в консоли PowerShell.
Пример 6: Найдите строку в подкаталогах
В этом примере выполняется поиск определенной текстовой строки в каталоге и всех его подкаталогах.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse |
Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
использует параметр Path для указания C:\Windows\System32*.txt. Параметр Recurse включает в себя поддиректории. Объекты отправляются по конвейеру в Select-String
.
Select-String
использует параметр Pattern и указывает строку Microsoft.
Параметр CaseSensitive используется для точного сопоставления регистра строки.
Select-String
отображает выходные данные в консоли PowerShell.
Замечание
В зависимости от ваших разрешений в выходных данных могут отображаться сообщения об отказе в доступе .
Пример 7: Найдите строки, которые не соответствуют шаблону
В этом примере показано, как исключить строки данных, которые не соответствуют шаблону.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
Командлет Get-Command
отправляет объекты вниз по конвейеру Out-File
для создания файлаCommand.txt в текущем каталоге.
Select-String
использует параметр Path для указания файлаCommand.txt .
Параметр Pattern указывает Get и Set в качестве шаблона поиска.
Параметр NotMatch исключает Get и Set из результатов.
Select-String
отображает выходные данные в консоли PowerShell, которые не включают команды Get или Set.
Пример 8: Поиск линий до и после матча
В этом примере показано, как получить линии до и после совпадающего шаблона.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get-Computer' -Context 2, 3
Command.txt:986:Cmdlet Get-CmsMessage 6.1.0.0 Microsoft.PowerShell.Security
Command.txt:987:Cmdlet Get-Command 6.1.2.0 Microsoft.PowerShell.Core
> Command.txt:988:Cmdlet Get-ComputerInfo 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:990:Cmdlet Get-Content 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:991:Cmdlet Get-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:992:Cmdlet Get-Credential 6.1.0.0 Microsoft.PowerShell.Security
Командлет Get-Command
отправляет объекты вниз по конвейеру Out-File
для создания файлаCommand.txt в текущем каталоге.
Select-String
использует параметр Path для указания файлаCommand.txt . Параметр Pattern указывает Get-Computer
в качестве шаблона поиска.
Параметр Context использует два значения, до и после, и помечает совпадения шаблона в выходных данных угловой скобкой (>
).
Параметр Context выводит две строки до первого совпадения с шаблоном и три строки после последнего совпадения с шаблоном.
Пример 9: Найти все совпадения с шаблоном
В этом примере показано, как параметр AllMatches находит каждое совпадение с шаблоном в строке текста. По умолчанию Select-String
находит только первое вхождение шаблона в строке текста. В этом примере используются свойства объекта, найденные с помощью Get-Member
командлета.
$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Program Files\PowerShell\7\en-US\default.help.txt:3: PowerShell Help System
C:\Program Files\PowerShell\7\en-US\default.help.txt:6: Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\7\en-US\default.help.txt:9: PowerShell Help describes PowerShell cmdlets
$A.Matches
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 4
Length : 10
Value : PowerShell
$A.Matches.Length
8
$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length
9
Командлет Get-ChildItem
использует параметр Path .
Параметр Path использует переменную$PSHOME
, указывающую каталог PowerShell. Остальная часть пути включает в себя подкаталог en-US и указывает каждый *.txt
файл в каталоге. Объекты Get-ChildItem
хранятся в $A
переменной. Переменная $A
отправляется по конвейеру командлету Select-String
.
Select-String
использует параметр Pattern для поиска строки PowerShell в каждом файле.
Из командной строки $A
PowerShell отображается содержимое переменной. Есть строка, содержащая два вхождения строки PowerShell.
В $A.Matches
свойстве указывается первое вхождение шаблона PowerShell в каждой строке.
Свойство $A.Matches.Length
подсчитывает первое вхождение шаблона PowerShell в каждой строке.
Переменная $B
использует то же самое Get-ChildItem
и Select-String
cmdlets, но добавляет параметр AllMatches .
AllMatches находит каждое вхождение шаблона PowerShell в каждой строке. Объекты, хранящиеся в переменных and $A
$B
, идентичны.
Свойство $B.Matches.Length
увеличивается, так как для каждой строки учитывается каждое вхождение шаблона PowerShell .
Пример 10. Преобразование объектов конвейера в строки с помощью Out-String
Результат ToString()
конвейерного объекта не совпадает с форматированным строковым представлением, созданным системой форматирования PowerShell. Таким образом, сначала может потребоваться передать объекты Out-String
.
Пилинг для Out-String
преобразования форматированных выходных данных в один многострочный строковый объект. Это означает, что при Select-String
поиске совпадения он выводит всю многостроную строку.
PS> $hash = @{
Name = 'foo'
Category = 'bar'
}
# !! NO output, due to .ToString() conversion
$hash | Select-String -Pattern 'foo'
# Out-String converts the output to a single multi-line string object
PS> $hash | Out-String | Select-String -Pattern 'foo'
Name Value
---- -----
Name foo
Category bar
# Out-String -Stream converts the output to a multiple single-line string objects
PS> $hash | Out-String -Stream | Select-String -Pattern 'foo'
Name foo
Пилинг для Out-String -Stream
преобразования отформатированных выходных данных в несколько однострочных строковых объектов. Это означает, что при Select-String
поиске совпадения он выводит только соответствующую строку.
Параметры
-AllMatches
Указывает, что командлет выполняет поиск более одного совпадения в каждой строке текста. Без этого параметра Select-String
находит только первое совпадение в каждой строке текста.
При Select-String
поиске нескольких совпадений в строке текста он по-прежнему выдает только один объект MatchInfo для строки, но свойство Match объекта содержит все совпадения.
Замечание
Этот параметр игнорируется при использовании в сочетании с параметром SimpleMatch . Если вы хотите вернуть все совпадения и шаблон, который вы ищете, содержит символы регулярных выражений, необходимо экранировать эти символы, а не использовать SimpleMatch. Дополнительные сведения о побеге регулярных выражений см. в about_Regular_Expressions .
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-CaseSensitive
Указывает, что совпадения командлетов чувствительны к регистру. По умолчанию совпадения не чувствительны к регистру.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Context
Захватывает указанное количество линий до и после линии, соответствующей шаблону.
Если вы введете одно число в качестве значения этого параметра, это число определит количество линий, захваченных до и после матча. Если вы вводите два числа в качестве значения, первое число определяет количество линий до совпадения, а второе число определяет количество линий после совпадения. Например: -Context 2,3
.
На дисплее по умолчанию строки с совпадением обозначаются прямоугольной скобкой (>
) (ASCII 62) в первом столбце дисплея. Неотмеченные линии — это контекст.
Параметр Context не изменяет количество объектов, генерируемых .Select-String
Select-String
генерирует один объект MatchInfo для каждого матча. Контекст хранится в виде массива строк в свойстве Context объекта.
Когда выходные данные команды Select-String
отправляются вниз по конвейеру к другой Select-String
команде, принимающая команда выполняет поиск только по тексту в соответствующей строке. Сопоставленная строка — это значение свойства Line объекта MatchInfo , а не текст в строках контекста. В результате параметр Context недействителен для принимающей Select-String
команды.
Если контекст включает совпадение, объект MatchInfo для каждого совпадения включает все линии контекста, но перекрывающиеся линии отображаются на экране только один раз.
Свойства параметра
Тип: | Int32[] |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Culture
Задает имя языка и региональных параметров, соответствующее указанному шаблону. Параметр Culture должен использоваться с параметром SimpleMatch . Поведение по умолчанию использует язык и региональные параметры текущего пространства выполнения PowerShell (сеанс).
Чтобы получить список всех поддерживаемых языков и региональных параметров, используйте Get-Culture -ListAvailable
команду.
Кроме того, этот параметр принимает следующие аргументы:
- CurrentCulture, то есть по умолчанию;
- Порядковый номер, который является нелингвистическим двоичным сравнением;
- Инвариантный, то есть независимое сравнение языка и региональных параметров.
С Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
помощью команды вы получаете самое быстрое двоичное сравнение.
Параметр "Язык и региональные параметры" использует завершение вкладки для прокрутки списка аргументов, которые указывают доступные региональные параметры. Чтобы вывести список всех доступных аргументов, используйте следующую команду:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
Дополнительные сведения о свойстве .NET CultureInfo.Name см. в CultureInfo.Name.
Параметр Culture появился в PowerShell 7.
Свойства параметра
Тип: | String |
Default value: | Culture of the current PowerShell session |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Encoding
Указывает тип кодирования для целевого файла. Значение по умолчанию — utf8NoBOM
.
Допустимые значения для этого параметра приведены следующим образом:
-
ascii
: использует кодировку для набора символов ASCII (7-разрядный). -
ansi
. Использует кодировку текущей культуры для кодовой страницы ANSI. Этот параметр добавлен в PowerShell 7.4. -
bigendianunicode
: кодирует в формате UTF-16 с использованием большого порядка байтов. -
bigendianutf32
: кодирует в формате UTF-32 в порядке старших байтов. -
oem
. Использует кодировку по умолчанию для MS-DOS и консольных программ. -
unicode
: кодирует в формате UTF-16 в порядке байтов младшего разряда. -
utf7
: кодирует в формате UTF-7. -
utf8
: кодирует в формате UTF-8. -
utf8BOM
. Кодирует в формате UTF-8 с пометкой порядка байтов (Byte Order Mark, BOM) -
utf8NoBOM
: Кодирует в формате UTF-8 без метки порядка байтов (BOM) -
utf32
: кодирует в формате UTF-32.
Начиная с PowerShell 6.2, параметр кодировки
Начиная с PowerShell 7.4, можно использовать значение Ansi
для параметра кодировки, чтобы передать числовой идентификатор ANSI-страницы текущей культуры, не указывая его вручную.
Замечание
UTF-7* больше не рекомендуется использовать. Начиная с версии PowerShell 7.1, выводится предупреждение, если задать utf7
как параметр кодировки.
Свойства параметра
Тип: | Encoding |
Default value: | UTF8NoBOM |
Допустимые значения: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Exclude
Исключите указанные пункты. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt
. Подстановочные символы разрешены.
Свойства параметра
Тип: | String[] |
Default value: | None |
Поддерживаются подстановочные знаки: | True |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Include
Включает в себя указанные элементы. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt
. Подстановочные символы разрешены.
Свойства параметра
Тип: | String[] |
Default value: | None |
Поддерживаются подстановочные знаки: | True |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-InputObject
Указывает текст для поиска. Введите переменную, содержащую текст, или введите команду или выражение, которое получает текст.
Использование параметра InputObject — это не то же самое, что отправка строк вниз по конвейеру в Select-String
.
При передаче более одной строки Select-String
в командлет он выполняет поиск указанного текста в каждой строке и возвращает каждую строку, содержащую искомый текст.
Когда вы используете параметр InputObject для отправки коллекции строк, Select-String
коллекция рассматривается как одна объединенная строка.
Select-String
возвращает строки как единое целое, если находит искомый текст в любой строке.
Объекты FileInfo рассматриваются как путь к файлу. Если указаны пути к файлам, Select-String
выполняется поиск содержимого файла, а не ToString()
представление объекта.
Свойства параметра
Тип: | PSObject |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
Object
Position: | Named |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
ObjectRaw
Position: | Named |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-List
Из каждого входного файла возвращается только первый экземпляр совпадающего текста. Это самый эффективный способ получить список файлов, которые имеют содержимое, соответствующее регулярному выражению.
По умолчанию Select-String
возвращает объект MatchInfo для каждого найденного совпадения.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-LiteralPath
Указывает путь к файлам для поиска. Значение параметра LiteralPath используется точно так же, как и типизированный параметр. Никакие символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки указывают PowerShell на то, что не следует интерпретировать какие-либо символы как управляющие последовательности. Дополнительную информацию см. в разделе about_Quoting_Rules.
Свойства параметра
Тип: | String[] |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | PSPath, LP |
Наборы параметров
LiteralFileRaw
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
LiteralFile
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-NoEmphasis
По умолчанию Select-String
выделяет строку, соответствующую шаблону, который вы искали с параметром Pattern . Параметр NoEmphasis отключает выделение.
Акцент использует отрицательные цвета на основе фона и текстовых цветов PowerShell. Например, если цвета PowerShell являются черным фоном с белым текстом. Акцент — это белый фон с черным текстом.
Этот параметр появился в PowerShell 7.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-NotMatch
Параметр NotMatch находит текст, который не соответствует указанному шаблону.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Path
Указывает путь к файлам для поиска. Подстановочные символы разрешены. По умолчанию используется локальный каталог.
Укажите файлы в каталоге, такие как log1.txt
, *.doc
, или *.*
. Если указать только директорию, команда завершится ошибкой.
Свойства параметра
Тип: | String[] |
Default value: | Local directory |
Поддерживаются подстановочные знаки: | True |
DontShow: | False |
Наборы параметров
File
Position: | 1 |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
FileRaw
Position: | 1 |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-Pattern
Указывает текст, который должен быть найден в каждой строке. Значение шаблона рассматривается как регулярное выражение.
Сведения о регулярных выражениях см. в about_Regular_Expressions.
Свойства параметра
Тип: | String[] |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Quiet
Указывает, что командлет возвращает простой ответ вместо объекта MatchInfo . Возвращаемое значение — если $true
шаблон найден или $null
если шаблон не найден.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
File
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
Object
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
LiteralFile
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-Raw
Вызывает командлет выводить только соответствующие строки, а не объекты MatchInfo . Это результаты в поведении, которое наиболее похоже на команды Grep unix или Windows findstr.exe .
Этот параметр появился в PowerShell 7.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ObjectRaw
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
FileRaw
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
LiteralFileRaw
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-SimpleMatch
Указывает, что командлет использует простое сопоставление, а не соответствие регулярному выражению. При простом совпадении Select-String
выполняет поиск текста во входных данных в параметре Pattern . Он не интерпретирует значение параметра Pattern как оператор регулярного выражения.
Кроме того, когда используется SimpleMatch , свойство Match объекта MatchInfo возвращается пусто.
Замечание
Если этот параметр используется с параметром AllMatches , allMatches игнорируется.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
PSObject
Вы можете передать любой объект с методом ToString()
в этот командлет.
Выходные данные
MatchInfo
По умолчанию этот командлет возвращает объект MatchInfo для каждого найденного совпадения.
Boolean
При использовании параметра Quiet этот командлет возвращает логическое значение, указывающее, найден ли шаблон.
String
При использовании необработанного параметра этот командлет возвращает набор объектов String , которые соответствуют шаблону.
Примечания
PowerShell включает следующие псевдонимы для Select-String
:
- Все платформы:
sls
Select-String
похож на grep
Unix или findstr.exe
в Windows.
Псевдоним sls
командлета Select-String
был представлен в PowerShell 3.0.
Замечание
Согласно утвержденным глаголам для команд PowerShell, официальным префиксом псевдонима для Select-*
командлетов является sc
, а не sl
. Следовательно, правильным псевдонимом для Select-String
должно быть scs
, а не sls
. Это исключение из этого правила.
При отправке объектов в Select-String
:
-
Объекты FileInfo рассматриваются как путь к файлу. Если указаны пути к файлам,
Select-String
выполняется поиск содержимого файла, а неToString()
представление объекта. - Результат
ToString()
конвейерного объекта не совпадает с форматированным строковым представлением, созданным системой форматирования PowerShell. Таким образом, сначала может потребоваться передать объектыOut-String
. Дополнительные сведения см. в разделе Пример 10.
Чтобы использовать Select-String
, введите текст, который вы хотите найти, в качестве значения параметра Pattern . Чтобы указать текст для поиска, используйте следующие критерии:
- Введите текст в строке в кавычках, а затем передайте его в
Select-String
. - Сохраните текстовую строку в переменной, а затем укажите переменную в качестве значения параметра InputObject .
- Если текст хранится в файлах, используйте параметр Path , чтобы указать путь к файлам.
По умолчанию Select-String
интерпретирует значение параметра Pattern как регулярное выражение. Дополнительные сведения см. в about_Regular_Expressions.
Параметр SimpleMatch можно использовать для переопределения сопоставления регулярных выражений.
Параметр SimpleMatch находит экземпляры значения параметра Pattern во входных данных.
Выходными данными по Select-String
умолчанию является объект MatchInfo , который содержит подробную информацию о матчах. Информация в объекте полезна при поиске текста в файлах, так как объекты MatchInfo имеют такие свойства, как Filename и Line. Если входные данные не из файла, значением этих параметров является InputStream.
Если вам не нужна информация в объекте MatchInfo , используйте параметр Quiet . Параметр Quiet возвращает логическое значение (True или False), указывающее, найдено ли совпадение, а не объект MatchInfo.
При сопоставлении фраз используется текущий язык и региональные параметры, Select-String
заданные для системы. Чтобы найти текущий язык и региональные Get-Culture
параметры, используйте командлет.
Чтобы найти свойства объекта MatchInfo , введите следующую команду:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *