首页 > 解决方案 > Powershell获取子项文件名掩码

问题描述

我正在编写一个脚本,该脚本通过其中包含多个 .pdf 文件的文件夹。只有当文件名符合两个掩码之一时,Powershell 才应继续执行某些步骤。否则它应该继续搜索下一个适合掩码的文件。

我用过:

Get-ChildItem $PATH -Filter "*TEXT-TXT-*" -Recurse -Force |Foreach-Object {

        write-host $_.Name

但是这个过滤器只是硬编码的。如何使用口罩,最好使用两个口罩作为过滤器?口罩应该是:

其中 # 是任何数字,X 是任何非数字字符。

希望这是可能的。

标签: powershellfilenamesmaskingget-childitem

解决方案


为此,您可以使用正则表达式,通过“或”向它们添加几个条件,例如如下

Get-ChildItem $PATH -Filter "*TEXT-TXT-*" -Recurse -Force|Where-Object {($_.name -match '\d{2}-\d{2}-\d{4} \w{4}-\w{3}-\w{3}-\w{4}-\w{2}.PDF') -or($_.name -match '\d{2}-\d{2}-\d{4} \w{4}-\w{3}-\w{4}-\w{2}.PDF')}

在这个表达式中,替换管道传输的文件名就足够了


推荐阅读