2016-06-24 14 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 
}