检查PowerShell中的文本文件内容

时间:2015-02-27 15:13:32

标签: powershell

PowerShell 命令

Get-ADFSRelyingPartyTrust | select Name | out-file C:\listOfNames.txt

按如下方式生成文件:

Name
----
AustriaRP
BahamasRP
BrazilRP
CanadaRP

[...]

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

3 个答案:

答案 0 :(得分:6)

Get-Content然后Select-String应该会有所帮助。如果字符串在文件中,它将被返回。如果没有,那么该命令将返回空值。

Get-Content C:\listOfNames.txt | Select-String "BrazilRP"

如果“BrazilRP”出现不止一次,则会返回所有匹配项,以便您知道是否有任何重复项。如果字符串是较长表达式的一部分,则同样适用。例如,如果您搜索“zil”,那么也将返回“Bra zil RP”。

您也可以将结果传递给另一个文件:

Get-Content C:\listOfNames.txt | Select-String "BrazilRP" | Out-File C:\myResults.txt

答案 1 :(得分:6)

我找到了一个解决方案(但感谢 PiotrWolkowski 建议Get-Content功能):

$file = Get-Content "C:\listOfNames.txt"
$containsWord = $file | %{$_ -match "BrazilRP"}
if ($containsWord -contains $true) {
    Write-Host "There is!"
} else {
    Write-Host "There ins't!"
}

答案 2 :(得分:-2)

如果您想轻松查看文件中是否包含文本,请尝试

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

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