0

我们有一个包含 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...errors out with bad method calls 这个词,|作为 or 的符号...认为我正在尝试传递某些东西,并且由于某种原因,我不能包含正则表达式。if如果我添加一个带有条件的重复语句,我可以让它工作bc,但必须有一种方法来提供选项列表,而不是一系列语句,每个语句都在寻找一个值。

什么是正确的语法

a.) 提供测试条件列表和/或

b.) 在上述语句中使用正则表达式

4

2 回答 2

1

Powershell 中的 or 运算符是 -or 所以你可能想要

if($s.contains("BC") -or $s.contains("bc")) { $bcflag = 1 } else {$bcflag = 0}
于 2013-02-05T17:12:21.837 回答
1

使用正则表达式:

if($s -match 'bc')

要不就

if($doc.fullname -match 'bc')

默认regex不区分大小写,将匹配“BC”或“bc”。

于 2013-02-05T17:17:53.783 回答