我有一些日期變量,用它來對特定目錄中的文件執行查詢。我可以GCI每個文件沒有問題,如下面的例子:PowerShell v2.0 - 轉換爲日期時間
File1.xml 14/07/2016 17:09
File2.xml 15/07/2016 09:32
所以我在尋找一個特定的年齡範圍和我的標準之間的所有文件是:
已成:
$Today4am = Get-Date -Hour 4 -Minute 0 -Second 0
但不遲於
$Yesterday4am = $Today4am.AddDays(-1)
變量輸出
$Today4am = 15 July 2016 04:00:00
$Yesterday4am = 14 July 2016 04:00:00
因此,變量以不同的格式將文件本身排除在日期之外,所以我需要確保兩種格式都相同以便進行比較。這裏是原始腳本:
$Filter = gci c:\temp\*.xml |
Where {$_.LastWriteTime -gt $Yesterday4am -and {$_.LastWriteTime-lt $Today4am}}
錯誤的參數來操作 '-gt':無法比較 「14/07/2016 17時09分52秒」 爲「14/07/2016 0 4:00 」。錯誤:「無法轉換值」14/07/2016 04:00「鍵入」System.DateTime「錯誤: 」字符串未被識別爲有效的DateTime。「」。
因此,我嘗試轉換變量以添加-Format「dd/MM/yyyy HH:mm」並輸出正確的格式。但轉換$ Yesterday4am = $ Today4am.AddDays(-1)格式 「DD/MM/YYYY HH:MM」產生錯誤:
Cannot convert value "15/07/2016 04:00" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."
我怎樣才能得到兩個日期格式的同意?
超級!謝謝 - 作品一種享受!所以-filterscript是我的腳本的關鍵 - 不知道它是什麼,但將查找它 – JDGEEK
它實際上是Where-Object(Where)的默認參數,但我只是指定我打電話,所以人們知道。這可能是因爲您在FilterScript {}表達式中使用了表達式括號。 –