2016-06-24 3 views
0

Я пытаюсь разобрать имена файлов (строки) и преобразовать их в нужные в PowerShell, используя следующую строку:Преобразование строки времени даты в PowerShell

([datetime]::ParseExact($DirName.BaseName,'yyyyMMdd',$null) 

Проблема заключается в том, что не все из папки в этой директории следуя этому соглашению об именах. Как я должен сначала проверить, подходит ли папка для соглашения об именах, и если это так, преобразуйте его в объект времени даты? Любая помощь будет принята с благодарностью.

+0

'TryParseExact' – PetSerAl

+0

Используйте RegEx. Таким образом, вы можете обнаружить различные шаблоны и действовать на них с помощью конкретных решений. –

ответ

2

Я не стал бы проверять сначала. Просто поместите вызов в блок try..catch. Однако я бы рекомендовал использовать InvariantCulture, а не $null.

$culture = [Globalization.CultureInfo]::InvariantCulture 
try { 
    [datetime]::ParseExact($DirName.BaseName, 'yyyyMMdd', $culture) 
} catch { 
    # not a valid date 
} 
Смежные вопросы