我正在研究一个脚本,该脚本会通过其中包含多个.pdf文件的文件夹。仅当文件名适合两个掩码之一时,Powershell才应继续执行某些步骤。否则,它应继续搜索适合该掩码的下一个文件。
我用过:
Get-ChildItem $PATH -Filter "*TEXT-TXT-*" -Recurse -Force |Foreach-Object {
write-host $_.Name
但是此过滤器仅是硬编码的。如何使用口罩,最好使用两个口罩作为过滤器?口罩应该是:
其中#是任何数字,X是任何非数字字符。
希望这是可能的。
为此,您可以使用正则表达式,例如,通过“或”向其添加多个条件,如下所示
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')}
在此表达式中,用管道传输的文件名代替就足够了