string - 比较行,-notcontains 被忽略

标签 string powershell

我想解析一个包含纯文本(字符串和值)的 .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/

相关文章:

powershell - 从 Process block 调用函数

php - 如何从文本字符串中获取 URL?

c# - System.String 不会重载运算符 += 但字符串连接有效,如何?

azure - Azure yml 文件中的 Powershell 变量未从一个阶段传递到其他阶段

powershell - 使用脚本中的参数调用第二个脚本

powershell - 使用Powershell脚本替换文本文件中的未知字符?

powershell - Windows 10,重命名所有子目录中的所有* .jpg文件,编号从1开始

c++ - 将 R 中的 SEXP 转换为 C++ 中的字符串 vector

java - 在 Java 中向 String 添加类似 null 的值

c# - 将带有字母字符的字符串参数作为参数传递给 javascript 函数失败