Powershell获取子项的文件名掩码

问题描述 投票:0回答:1

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

我用过:

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

        write-host $_.Name

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

  • “ ##-##-#### XXXX-XXX-XXXX-XX.PDF”
  • “ ##-##-#### XXXX-XXX-XXX-XXXX-XX.PDF”

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

希望这是可能的。

powershell filenames masking get-childitem
1个回答
0
投票

为此,您可以使用正则表达式,例如,通过“或”向其添加多个条件,如下所示

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')}

在此表达式中,用管道传输的文件名代替就足够了

© www.soinside.com 2019 - 2024. All rights reserved.