PowerShell 命令
Get-ADFSRelyingPartyTrust | select Name | out-file C:\listOfNames.txt
按如下方式生成文件:
Name
----
AustriaRP
BahamasRP
BrazilRP
CanadaRP
[...]
现在,我如何检查是否已提取BrazilRP
并且C:\listOfNames.txt
是否包含它?
答案 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"
}