2014-02-19 91 views
8

我需要比較文件的LastWriteTime並將其與當前時間進行比較。如果差異大於45分鐘,那麼我需要收到電子郵件提醒。如何在PowerShell中比較兩個日期並在幾分鐘內獲得差異

這是我到目前爲止。

$StartDate=(GET-DATE) 

$EndDate=[datetime]」01/01/2014 00:00」 

NEW-TIMESPAN –Start $StartDate –End $EndDate 

在上面的代碼我需要Get-Item C:\Users\myusername\Desktop\file.html | select LastWriteTime

更換$EndDate我需要file.html的LastWriteTime與當前時間進行比較。

請幫我存儲 Get-Item C:\Users\myusername\Desktop\file.html | select LastWriteTime$EndDate

所以我可以做比較。

回答

15

我認爲這應該工作:

if (((Get-Date) - (Get-ChildItem file.html).LastWriteTime).TotalMinutes -gt 45) { 
Write-Host "Old file" 
} 

只是爲了獲取日期到一個變量是:

$EndDate = (Get-Item C:\Users\myusername\Desktop\file.html).LastWriteTime 

$EndDate = Get-Item C:\Users\myusername\Desktop\file.html | 
    select -expandproperty LastWriteTime 

需要對舊的select -expandproperty語法當您可能正在訪問多個對象的屬性時,Powershell的版本(3.0之前)。如果只有一個對象,我認爲即使在Powershell 2上也不需要它。

+0

太棒了非常感謝解決方案和解釋。只是一個問題,如果狀態代碼,如果該語句是錯誤的,這意味着file.html不老,並在45分鐘內更新,然後代碼不會做任何事情嗎? – user206168

+0

沒關係,我明白了。再次感謝 :) – user206168

相關問題