我正在尝试解析文件名(字符串)并使用以下行将它们转换为powershell中的日期:
([datetime]::ParseExact($DirName.BaseName,'yyyyMMdd',$null)
问题是,并非该目录中的所有文件夹都遵循该命名约定。我将如何首先测试该文件夹是否符合命名约定,如果符合,则将其转换为日期时间对象?任何帮助将不胜感激。
答案 0 :(得分:2)
我先不打算检查。只需将呼叫置于try..catch
块中即可。不过,我建议使用InvariantCulture
而不是$null
。
$culture = [Globalization.CultureInfo]::InvariantCulture
try {
[datetime]::ParseExact($DirName.BaseName, 'yyyyMMdd', $culture)
} catch {
# not a valid date
}