Powershell过滤器变量,通配符不起作用

时间:2015-09-05 13:33:37

标签: windows powershell

我编写了一个正常运行的Windows PowerShell脚本,您可以在this thread中看到它的起源,它会在将.htm文件添加到该文件夹​​时监视文件夹并运行批处理文件。

一切正常,但我现在正试图过滤哪种文件触发脚本。从我读过的一些内容来看,这应该只包含以A到Z开头的.htm文件:

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

但它似乎与任何东西都没有匹配。

我试图排除这样的文件:

~$abc.htm

我现在拥有的所有.htm文件:

$filter = '*.htm' 

它可以正常工作,但如何排除以~$开头的文件,即非字母字符?实际上,我想要排除的内容始终以~$开头,如果它更容易明确排除那些。

更新

呃,关于PowerShell的this page似乎是在推荐这种语法。它显然是一个不同的案例,但似乎也许这意味着它可以识别PS。我意识到语法是错误的并且问它应该是什么,换句话说,所以downvoting似乎有点奇怪。正如我写的,我试图匹配

  

以A到Z开头的.htm文件

如此清楚地说明了我的意思是不匹配任何东西。

1 个答案:

答案 0 :(得分:1)

它不是支持字符范围的Filter参数,而是Path参数。 Filter仅支持基本通配符匹配(*?

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

应该做的伎俩