PowerShell-检查CSV中的值是否存在

pkln4tw6  于 2022-11-10  发布在  Shell
关注(0)|答案(2)|浏览(209)

我想检查CSV文件中是否存在字符串。
我正在尝试使用if ($PCname -in $logFileLocation) { write-output "true" } else { write-output "false" }
但是,这总是返回FALSE。
如何检查CSV文件中的值?

oxiaedzo

oxiaedzo1#

您可以在dir(Get-Childitem)的结果中集成查询

$Query = "yourString"
$List = Get-Childitem *.CSV |
Select-Object Name,@{Name="MatchesQuery"; Expression={($_ | Get-Content -raw) -match $Query}}
$List

注意:$Query将被解释为正则表达式
这样,您就会得到一个所有文件的列表,其中包含它是否与您的环境匹配的信息。这样,您可以在事后像这样进行过滤:
$List | where {$_.MatchesQuery -eq $true}
根据您的CSV,如果您不仅使用Get-Content,而且使用ConvertFrom-CSV并选择要搜索的列,则可能会更好、更可靠。
此版本读取CSV并在“ComputerName”列中搜索您的$Query

$Query = "yourString"
$List = Get-Childitem *.CSV | Select-Object Name,@{Name="MatchesQuery"; Expression={($_ | Get-Content -raw | ConvertFrom-CSV -Delimiter ";" | where {$_.ComputerName -eq "$Query").Count -gt 0}}}
$List
bq3bfh9z

bq3bfh9z2#

这可能会有所帮助:

$find = "some_string"
Get-Content C:\temp\demo.csv | Select-String $find

相关问题