Чтобы найти все папки с именами, содержащими только шестнадцатеричные символы (только цифры 0..9 и буквы a..f):
Get-ChildItem -Path 'C:\' -Directory -Force | Where-Object { $_.Name -match '^[a-f\d]+$' }
Чтобы найти только те, которые начинаются с di git:
Get-ChildItem -Path 'C:\' -Directory -Force | Where-Object { $_.Name -match '^[\d][a-f\d]+$' }
Найти только тех, кто начинается с буквы a..f:
Get-ChildItem -Path 'C:\' -Directory -Force | Where-Object { $_.Name -match '^[a-f][a-f\d]+$' }
Надеюсь, что поможет
Регулярное выражение -match
оператор работает без учета регистра, поэтому нет необходимости использовать [a-fA-F]
PS Поскольку вы также пометили этот вопрос как PowerShell-2.0
, для версий ниже 3.0 переключатель -Directory
отсутствует и вам нужно указать это в предложении Where-Object
, например:
Get-ChildItem -Path 'C:\' -Force | Where-Object { $_.PSIsContainer -and $_.Name -match '^[a-f][a-f\d]+$' }