2015-09-05 48 views
0

我寫了一個Windows PowerShell腳本工作,你可以在this thread中看到它的起源,它觀察一個文件夾,並在.htm文件添加到文件夾時運行一個批處理文件。Powershell過濾器變量與通配符不工作

這一切工作正常,但我現在試圖過濾哪種文件觸發腳本。從一些事情我讀過,這應該工作到包括到Z一開始只.htm文件:

$filter '[A-Z]*.htm' 

但是似乎匹配任何不。

我想排除這樣的文件:

$filter = '*.htm' 

,併爲工作正常,但我怎麼排除:

~$abc.htm 

我現在都.htm文件匹配以~$開頭的文件,即非字母字符?實際上,我想排除的那些總是以~$開頭,如果更容易明確排除那些。

更新:

呃,好吧this page約PowerShell的似乎是,建議語法。這顯然是一種不同的情況,但似乎也許這意味着PS會認識到這一點。我意識到語法是錯誤的,並且詢問它應該是什麼,換句話說,降低投票似乎有點奇怪。正如我寫的,我想匹配到Z

具有啓動這麼清楚,這就是我的意思是由不匹配任何

.htm文件。

+0

*然而,它似乎並不匹配任何*如何命名'[A-Z] Something.htm'文件? – PetSerAl

+0

嗯,它會匹配的。我在JavaScript中使用了括號語法,但在這裏顯然是錯誤的。這似乎意味着該語法將在PowerShell中工作:https://technet.microsoft.com/en-us/library/Ee692793.aspx - 但我想不是。 – user3762977

回答

1

支持字符範圍的參數不是Filter,而是參數PathFilter只支持基本的通配符匹配(*?

Get-ChildItem -Path '.\[A-Z]*.htm' 

應該做的伎倆

+0

太好了,非常感謝。 – user3762977