检查PowerShell中的文本文件内容

检查PowerShell中的文本文件内容,powershell,Powershell,PowerShell命令 Get-ADFSRelyingPartyTrust | select Name | out-file C:\listOfNames.txt 生成一个文件,如下所示: Name ---- AustriaRP BahamasRP BrazilRP CanadaRP [...] 现在,我如何检查BrazilRP是否已被提取,并且C:\listOfNames.txt是否包含该文件?获取内容然后选择字符串应该会有所帮助。如果字符串在文件中,它将被返回。如果不是,则命令将返回

PowerShell命令

Get-ADFSRelyingPartyTrust | select Name | out-file C:\listOfNames.txt
生成一个文件,如下所示:

Name
----
AustriaRP
BahamasRP
BrazilRP
CanadaRP

[...]

现在,我如何检查
BrazilRP
是否已被提取,并且
C:\listOfNames.txt
是否包含该文件?

获取内容
然后
选择字符串
应该会有所帮助。如果字符串在文件中,它将被返回。如果不是,则命令将返回空值

Get-Content C:\listOfNames.txt | Select-String "BrazilRP"
如果“BrazilRP”出现不止一次,所有出现的情况都将返回,以便您知道是否有任何重复。如果字符串是较长表达式的一部分,则同样适用。例如,如果您搜索“zil”,那么“BrazilRP”也将返回

您还可以将结果通过管道输出到另一个文件:

Get-Content C:\listOfNames.txt | Select-String "BrazilRP" | Out-File C:\myResults.txt
我找到了一个解决方案(但多亏了PiotrWolkowski建议我使用
获取内容
功能):


如果您想轻松查看文件是否包含您的文本,请尝试以下操作

[bool]类型以true或false的形式返回数据,而不是返回您搜索的实际数据

if ([bool]((Get-Content -Path "C:\listOfNames.txt") -like '*BrazilRP*')) { 
write-host "found it"
}
else {
 write-host "didnt find it"
}
(gc C:\listOfNames.txt)-包含“BrazilRP”
if ([bool]((Get-Content -Path "C:\listOfNames.txt") -like '*BrazilRP*')) { 
write-host "found it"
}
else {
 write-host "didnt find it"
}