2017-05-06 65 views
-5

我試着用powershell來檢查子目錄下目錄中的文件是否沒有10小時的轉換時間(LastWriteTime)。Powershell如何獲得lastwritetime文件並將其記錄下來

如果是這種情況,我想記錄它的名字和目錄在一個log.txt文件中,並有一個電子郵件提醒。

所以我做到了,但它並沒有真正奏效......在任何幫助下面,我們都會感激!

$directories ='C:\folders' 
$Logfile = "C:\log.txt" 
function logit($msg){ 
$msg='[{0}]{1}' -f [datetime]::Now, $msg 
$msg|Out-File $logfile -append 
} 
if([datetime]::Now - (Get-Item $directories).LastWriteTime -gt 
[timespan]'0:10:0:0'){ 

Send-MailMessage -to "name <[email protected]>" -from "name 
<[email protected]>" -subject "object" -smtpserver "smtp.domain.com" .. 
Out-File $Logfile 
Write-Host 

} 

謝謝

我嘗試,我得到了良好的效果。我可以在幾小時內修改「比較」?

$compareDate = (Get-Date).AddDays(-1) 
@(Get-ChildItem -Path C:\temp\*.* -Filter '*.*' -Recurse | Where-Object {  
$_.LastWriteTime -gt $compareDate}) 
+2

你什麼錯誤?哪部分不起作用?你可以說得更詳細點嗎? – David

+0

謝謝你回答我。我沒有任何錯誤。我收到了郵件。但我沒有關於文件名和他的位置的任何信息。 – Rescor

+0

編輯是一個不同的問題,而不是同一個問題的更新...你在尋找'(Get-Date).AddHours(-1)'嗎? –

回答

0

試試這個:

$compareDate = (Get-Date).AddHours(-10) 
Get-ChildItem "C:\temp\" -Recurse -file | Where LastWriteTime -gt $compareDate 
相關問題