我们有一个包含3500个文档的库,我们正在构建元数据。大约1/3的文档在标题中有BC
,我想标记这些。现在,这就是我所拥有的,它运作良好:
$htmPath = "c:\ht"
$srcfiles = Get-ChildItem $htmPath -filter "*.htm*"
ForEach ($doc in $srcfiles)
{
$s = $doc.Fullname
if($s.contains("BC")) { $bcflag = 1 } else {$bcflag = 0}
Write-Host "File: " $doc.Fullname " BC Flag: " $bcflag
}
我只注意到标题中可能有一些bc
的文档,所以我需要在条件测试中添加OR
。我用OR
这个词错误地用错误的方法调用错误,|
作为符号或...认为我正试图管道,并且出于某种原因,我不能包括正则表达式。如果我添加一个带有if
的重复bc
语句作为条件,我可以使它工作,但必须有一种方法来提供选项列表而不是一系列语句,每个语句都要查找单一价值。
的正确语法是什么?
a。)提供要测试的条件列表和/或
b。)在上述陈述中使用正则表达式
答案 0 :(得分:1)
Powershell中的or运算符是-or所以你可能想要
if($s.contains("BC") -or $s.contains("bc")) { $bcflag = 1 } else {$bcflag = 0}
答案 1 :(得分:1)
使用正则表达式:
if($s -match 'bc')
或只是
if($doc.fullname -match 'bc')
默认regex
不区分大小写,会匹配“BC”或“bc”。