2013-02-05 69 views
0

我們有一個包含3500個文檔的庫,我們正在爲其構建元數據。大約1/3的文件在標題中有BC,我想標記這些文件。現在,這裏是我工作得很好:我需要Powershell的幫助if/then syntax

$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 ...錯誤的方法調用錯誤,|作爲符號或...認爲我想管東西,出於某種原因,我不能包括一個正則表達式。如果我在bc的條件下添加重複的if語句作爲條件,我可以使其工作,但必須有一種方法來提供選項列表,而不是每個查找單個值的一系列語句。

什麼是正確的語法

一個。)提供的條件清單,以測試和/或

灣)在上面的語句

回答

1

的或經營者在PowerShell中使用正則表達式是-or所以你可能使用正則表達式要

if($s.contains("BC") -or $s.contains("bc")) { $bcflag = 1 } else {$bcflag = 0} 
+0

- 或訣竅!謝謝! – dwwilson66

1

if($s -match 'bc') 

或只是

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

默認regex是不區分大小寫,則將會匹配 「BC」 或 「BC」。