我想解析一个包含纯文本(字符串和值)的 .dat 文件。
例如,我想要“NAME:”后面的值。但其中也有一行带有“FAM.NAME:”。
但我只想要带有 NAME 的那个。 这是我尝试过的:
$content= Get-Content $_.FullName
foreach($line in $content){
if($line -contains "NAME" -and $line -notcontains "FAM" ) { $test= $line }
}
据我了解,条件是该行包含“NAME”且不包含“FAM”。
输出是“FAM.NAME: ALFREDO”。它似乎忽略了-and 之后的条件。这是为什么?
最佳答案
您还可以使用 -like
运算符 -
PS>"FAM.NAME: ALFREDO" -like "NAME*"
False
PS>"NAME: ALFREDO" -like "NAME*"
True
注意 - 确保添加 *
以匹配字符串的其余部分,否则它不会匹配
关于string - 比较行,-notcontains 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25258203/