Я новичок в Regex
У меня есть следующая структура папок:
Каталог: C:\Backup\Pictures
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 22.3.2022. 13:17 2020
d----- 22.3.2022. 13:17 2021
d----- 22.3.2022. 13:17 2022
d----- 22.3.2022. 13:24 archives
d----- 22.3.2022. 13:18 listing
Внутри каждой папки с именем года у меня есть подпапки, которые представляют месяцы и дни, как показано ниже:
C:\Backup\Pictures\2020\07\24
C:\Backup\Pictures\2020\08\24
C:\Backup\Pictures\2020\09\24
C:\Backup\Pictures\2021\07\24
. . . . . . . . . . . . .
Мне нужно выражение, чтобы смотреть только в подпапках с днями, например, чтобы искать подпапку 24 в C:\Backup\Pictures\2020\07\
У меня есть выражение, которое распознает, содержит ли имя папки 4 цифры, но не знаю, как расширить его для поиска 2 подпапок, в имени которых есть 2 цифры.
C:\Backup\Pictures\XXXX - done
C:\Backup\Pictures\XXXX\XX\XX - need expression
Get-ChildItem 'C:\Backup\Pictures\' -recurse | where {{ $_.DirectoryName -match '^\d4$' }}
Но нужно выражение, которое должно искать папки со следующими шаблонами: C:\Backup\Pictures\4 digits\2 digits\2 digits
из любопытства, как добавить правило, чтобы проверить, являются ли 20??\??\??
цифрами?
Я написал ответ ниже
Вместо -Recurse
просто вызовите Get-ChildItem
с подстановочным знаком, который разрешается в целевые пути:
Get-ChildItem -Path .\20[0-9][0-9]\[0-9][0-9]\[0-9][0-9]
Get-ChildItem -Path C:\Backup\Pictures\20??\??\??
сработает?