[玩转系统] Select-String (Microsoft.PowerShell.Utility)
作者:精品下载站 日期:2024-12-14 02:04:06 浏览:14 分类:玩电脑
Select-String (Microsoft.PowerShell.Utility)
Select-String
模块 :Microsoft.PowerShell.Utility查找字符串和文件中的文本。
句法
Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
-InputObject <PSObject>
[-Pattern] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
[-Path] <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
-Raw
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Culture <String>]
[-Pattern] <String[]>
-LiteralPath <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
描述
Select-String
cmdlet 使用正则表达式匹配来搜索输入字符串和文件中的文本模式。您可以使用类似于 UNIX 中的 grep
或 Windows 中的 findstr.exe
的 Select-String
。
Select-String
基于文本行。默认情况下,Select-String
查找每行中的第一个匹配项,并且对于每个匹配项,它会显示文件名、行号以及包含该匹配项的行中的所有文本。您可以指示 Select-String
在每行查找多个匹配项,显示匹配项前后的文本,或显示指示是否找到匹配项的布尔值(True 或 False)。
Select-String
可以显示所有文本匹配项或在每个输入文件中的第一个匹配项后停止。 Select-String
可用于显示与指定模式不匹配的所有文本。
您还可以指定 Select-String
应采用特定的字符编码,例如当您搜索 Unicode 文本文件时。 Select-String
使用字节顺序标记 (BOM) 来检测文件的编码格式。如果文件没有 BOM,则假定编码为 UTF8。
示例
示例 1:查找区分大小写的匹配项
此示例对通过管道发送到 Select-String
cmdlet 的文本进行区分大小写的匹配。
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
文本字符串 Hello 和 HELLO 沿着管道发送到 Select-String
cmdlet。 Select-String
使用Pattern 参数来指定HELLO。 CaseSensitive 参数指定大小写必须仅与大写模式匹配。 SimpleMatch 是一个可选参数,它指定模式中的字符串不被解释为正则表达式。 Select-String
在 PowerShell 控制台中显示 HELLO。
示例 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
cmdlet 一起使用,在当前目录中创建两个文本文件, Alias.txt 和 Command.txt。
Select-String
使用带有星号 (*
) 通配符的 Path 参数来搜索当前目录中文件扩展名为 .txt
。 Pattern 参数指定要匹配Get- 的文本。 Select-String
在 PowerShell 控制台中显示输出。文件名和行号位于包含 Pattern 参数匹配的每行内容之前。
示例 3:查找模式匹配
在此示例中,搜索多个文件以查找指定模式的匹配项。该模式使用正则表达式量词。有关详细信息,请参阅 about_Regular_Expressions。
Select-String -Path "$PSHOME\en-US\*.txt" -Pattern '\?'
C:\Program Files\PowerShell\en-US\default.help.txt:27: beginning at https://go.microsoft.com/fwlink/?LinkID=108518.
C:\Program Files\PowerShell\en-US\default.help.txt:50: or go to: https://go.microsoft.com/fwlink/?LinkID=210614
Select-String
cmdlet 使用两个参数:Path 和 Pattern。 Path 参数使用变量 $PSHOME
指定 PowerShell 目录。路径的其余部分包括子目录 en-US 并指定该目录中的每个 *.txt
文件。 Pattern 参数指定匹配每个文件中的问号 (?
)。反斜杠 (\
) 用作转义字符,并且是必需的,因为问号 (?
) 是正则表达式量词。 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\en-US\default.help.txt:67: The titles of conceptual topics begin with "About_".
C:\Program Files\PowerShell\en-US\default.help.txt:70: Get-Help About_<topic-name>
C:\Program Files\PowerShell\en-US\default.help.txt:93: Get-Help About_Modules : Displays help about PowerShell modules.
C:\Program Files\PowerShell\en-US\default.help.txt:97: about_Updatable_Help
该函数是在 PowerShell 命令行上创建的。 Function
命令使用名称 Search-Help
。按Enter开始向函数添加语句。在 >>
提示符下,添加每个语句并按 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
cmdlet 使用LogName 参数指定应用程序日志。 MaxEvents 参数从日志中获取 50 个最新事件。日志内容存储在名为$Events
的变量中。
$Events
变量沿着管道发送到 Select-String
cmdlet。 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
cmdlet 将对象沿管道发送到 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
cmdlet 将对象沿管道发送到 Out-File
,以在当前目录中创建 Command.txt 文件。 Select-String
使用Path 参数指定Command.txt 文件。 Pattern 参数指定 Get-Computer
作为搜索模式。 Context 参数使用前后两个值,并用尖括号 (>
) 标记输出中的模式匹配。 Context 参数输出第一个模式匹配之前的两行和最后一个模式匹配之后的三行。
示例 9:查找所有模式匹配
此示例显示 AllMatches 参数如何查找一行文本中的每个模式匹配。默认情况下,Select-String
仅查找文本行中模式的第一次出现。此示例使用通过 Get-Member
cmdlet 找到的对象属性。
$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Program Files\PowerShell\en-US\default.help.txt:3: PowerShell Help System
C:\Program Files\PowerShell\en-US\default.help.txt:6: Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\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
cmdlet 使用Path 参数。 Path 参数使用变量 $PSHOME
指定 PowerShell 目录。路径的其余部分包括子目录 en-US 并指定该目录中的每个 *.txt
文件。 Get-ChildItem
对象存储在 $A
变量中。 $A
变量沿着管道发送到 Select-String
cmdlet。 Select-String
使用 Pattern 参数在每个文件中搜索字符串 PowerShell。
在 PowerShell 命令行中,将显示 $A
变量内容。其中一行包含两次出现的字符串 PowerShell。
$A.Matches
属性列出每行中模式 PowerShell 的第一次出现。
$A.Matches.Length
属性计算每行中模式 PowerShell 的第一次出现次数。
$B
变量使用相同的 Get-ChildItem
和 Select-String
cmdlet,但添加了 AllMatches 参数。 AllMatches 查找每行中模式 PowerShell 的每次出现。 $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
指示 cmdlet 在每一行文本中搜索多个匹配项。如果没有此参数,Select-String
仅查找每行文本中的第一个匹配项。
当 Select-String
在一行文本中找到多个匹配项时,它仍然只为该行发出一个 MatchInfo 对象,但 Matches对象的属性包含所有匹配项。
笔记
与 SimpleMatch 参数结合使用时,此参数将被忽略。如果您希望返回所有匹配项,并且您正在搜索的模式包含正则表达式字符,则必须对这些字符进行转义,而不是使用 SimpleMatch。有关转义正则表达式的更多信息,请参阅 about_Regular_Expressions。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-CaseSensitive
指示 cmdlet 匹配区分大小写。默认情况下,匹配不区分大小写。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Context
捕获与模式匹配的行之前和之后指定的行数。
如果您输入一个数字作为该参数的值,该数字将决定比赛前后捕获的行数。如果输入两个数字作为值,则第一个数字确定匹配之前的行数,第二个数字确定匹配之后的行数。例如,-Context 2,3
。
在默认显示中,匹配的行由显示第一列中的右尖括号 (>
) (ASCII 62) 指示。未标记的行是上下文。
Context 参数不会更改 Select-String
生成的对象数量。 Select-String
为每个匹配生成一个 MatchInfo 对象。上下文作为字符串数组存储在对象的 Context 属性中。
当 Select-String
命令的输出沿着管道发送到另一个 Select-String
命令时,接收命令仅搜索匹配行中的文本。匹配行是 MatchInfo 对象的 Line 属性的值,而不是上下文行中的文本。因此,Context 参数在接收 Select-String
命令时无效。
当上下文包含匹配项时,每个匹配项的 MatchInfo 对象包含所有上下文行,但重叠行仅在显示中出现一次。
类型 :Int32[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Culture
指定区域性名称以匹配指定的模式。 Culture 参数必须与 SimpleMatch 参数一起使用。默认行为使用当前 PowerShell 运行空间(会话)的区域性。
要获取所有支持的区域性列表,请使用 Get-Culture -ListAvailable 命令。
此外,此参数接受以下参数:
- CurrentCulture,默认;
- Ordinal,即非语言二元比较;
- 不变性,即与文化无关的比较。
使用Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
命令,您可以获得最快的二进制比较。
Culture 参数使用制表符补全来滚动指定可用区域性的参数列表。要列出所有可用参数,请使用以下命令:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
有关 .NET CultureInfo.Name 属性的详细信息,请参阅 CultureInfo.Name。
PowerShell 7 中引入了 Culture 参数。
类型 :String
位置:命名
默认值:当前 PowerShell 会话的文化
必需的:False
接受管道输入:False
接受通配符:False
-Encoding
指定目标文件的编码类型。默认值为 utf8NoBOM
。
该参数可接受的值如下:
ascii
:使用 ASCII(7 位)字符集的编码。ansi
:使用当前区域性的 ANSI 代码页的编码。此选项是在 PowerShell 7.4 中添加的。bigendianunicode
:使用 big-endian 字节顺序以 UTF-16 格式进行编码。bigendianutf32
:使用 big-endian 字节顺序以 UTF-32 格式进行编码。oem
:使用 MS-DOS 和控制台程序的默认编码。unicode
:使用小端字节顺序以 UTF-16 格式进行编码。utf7
:以UTF-7格式编码。utf8
:以UTF-8格式编码。utf8BOM
:使用字节顺序标记 (BOM) 以 UTF-8 格式进行编码utf8NoBOM
:以 UTF-8 格式编码,不带字节顺序标记 (BOM)utf32
:以 UTF-32 格式编码。
从 PowerShell 6.2 开始,Encoding 参数还允许使用注册代码页的数字 ID(例如 -Encoding 1251
)或注册代码页的字符串名称(例如 -Encoding “windows-1251”
)。有关详细信息,请参阅 Encoding.CodePage 的 .NET 文档。
从 PowerShell 7.4 开始,您可以使用 Encoding 参数的 Ansi
值来传递当前区域性 ANSI 代码页的数字 ID,而无需手动指定。
笔记
不再建议使用UTF-7*。从 PowerShell 7.1 开始,如果为 Encoding 参数指定 utf7
,则会写入警告。
编码
接受的值:ASCII、BigEndianUnicode、BigEndianUTF32、OEM、Unicode、UTF7、UTF8、UTF8BOM、UTF8NoBOM、UTF32
位置:命名
默认值:UTF8无BOM
必需的:False
接受管道输入:False
接受通配符:False
-Exclude
排除指定的项目。此参数的值限定 Path 参数。输入路径元素或模式,例如 *.txt
。允许使用通配符。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Include
包括指定的项目。此参数的值限定 Path 参数。输入路径元素或模式,例如 *.txt
。允许使用通配符。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-InputObject
指定要搜索的文本。输入包含文本的变量,或键入获取文本的命令或表达式。
使用 InputObject 参数与将字符串沿着管道发送到 Select-String
不同。
当您通过管道将多个字符串传递给 Select-String
cmdlet 时,它会在每个字符串中搜索指定文本并返回包含搜索文本的每个字符串。
当您使用 InputObject 参数提交字符串集合时,Select-String
将该集合视为单个组合字符串。 Select-String
如果在任何字符串中找到搜索文本,则将字符串作为一个单元返回。
FileInfo 对象被视为文件的路径。指定文件路径后,Select-String
搜索文件的内容,而不是对象的 ToString()
表示形式。
PS对象
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-List
每个输入文件仅返回匹配文本的第一个实例。这是检索内容与正则表达式匹配的文件列表的最有效方法。
默认情况下,Select-String
会为其找到的每个匹配项返回一个 MatchInfo 对象。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-LiteralPath
指定要搜索的文件的路径。 LiteralPath 参数的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其用单引号引起来。单引号告诉 PowerShell 不要将任何字符解释为转义序列。有关更多信息,请参阅 about_Quoting_Rules。
类型 :String[]
别名:PSPath, LP
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-NoEmphasis
默认情况下,Select-String
会突出显示与您使用 Pattern 参数搜索的模式相匹配的字符串。 NoEmphasis 参数禁用突出显示。
重点使用基于 PowerShell 背景和文本颜色的负色。例如,如果您的 PowerShell 颜色是黑色背景和白色文本。重点是白色背景和黑色文本。
此参数是在 PowerShell 7 中引入的。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-NotMatch
NotMatch 参数查找与指定模式不匹配的文本。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Path
指定要搜索的文件的路径。允许使用通配符。默认位置是本地目录。
指定目录中的文件,例如 log1.txt
、*.doc
或 *.*
。如果仅指定目录,该命令将失败。
String[]
位置:1
默认值:本地目录
必需的:True
接受管道输入:True
接受通配符:True
-Pattern
指定要在每行上查找的文本。模式值被视为正则表达式。
要了解正则表达式,请参阅 about_Regular_Expressions。
类型 :String[]
位置:0
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
-Quiet
指示 cmdlet 返回简单响应而不是 MatchInfo 对象。如果找到模式,则返回值为 $true
;如果未找到模式,则返回值为 $null
。
SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Raw
使 cmdlet 仅输出匹配的字符串,而不是 MatchInfo 对象。这是与 Unix grep 或 Windows findstr.exe 命令最相似的行为结果。
此参数是在 PowerShell 7 中引入的。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:True
接受管道输入:False
接受通配符:False
-SimpleMatch
指示 cmdlet 使用简单匹配而不是正则表达式匹配。在简单匹配中,Select-String
在输入中搜索 Pattern 参数中的文本。它不会将 Pattern 参数的值解释为正则表达式语句。
另外,当使用SimpleMatch时,返回的MatchInfo对象的Matches属性为空。
笔记
当此参数与 AllMatches 参数一起使用时,AllMatches 将被忽略。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
输入
PSObject
您可以通过管道将任何具有 ToString()
方法的对象传递给此 cmdlet。
输出
比赛信息
默认情况下,此 cmdlet 会为找到的每个匹配项返回一个 MatchInfo 对象。
布尔值
当您使用Quiet参数时,此cmdlet会返回一个布尔值,指示是否找到该模式。
字符串
当您使用 Raw 参数时,此 cmdlet 将返回一组与该模式匹配的 String 对象。
笔记
PowerShell 包含以下 Select-String
别名:
所有平台:
sls
Select-String
类似于 UNIX 中的 grep
或 Windows 中的 findstr.exe
。
PowerShell 3.0 中引入了 Select-String
cmdlet 的 sls
别名。
笔记
根据 PowerShell 命令批准的动词,Select-*
cmdlet 的官方别名前缀是 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
cmdlet。
要查找 MatchInfo 对象的属性,请键入以下命令:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag