监视文件夹中的文件

时间:2018-10-04 11:27:03

标签: windows powershell batch-file synchronization directory

所以我的代码现在可以通过在未添加文件时通知我而起作用。 我现在的问题是我有更多的客户,我的foreach循环似乎无法正常工作。仍然会通过电子邮件向我发送1位客户。

这是我的代码:

[string]$path = "X:\Brievenbus\Customer1"
[string]$path = "X:\Brievenbus\Customer2"

 $File = Get-ChildItem $Path | Where { $_.LastWriteTime -ge [datetime]::Now.AddMinutes(-1) }


$SMTPMessage = @{
To = $To
From = $From
Subject = "$Subject at $Path"
Smtpserver = $SMTPServer
}

$Path | ForEach {$Path += $($_.FullName)
$File = Get-ChildItem $Path | Where { $_.LastWriteTime -ge [datetime]::Now.AddMinutes(-1) }
If ($File -eq $null)
{ $SMTPBody = "`nLaatste 24H is er niets meer gestuurd bij klant:`n`n     $($_.FullName) $path"

Send-MailMessage @SMTPMessage -Body $SMTPBody
}
}

1 个答案:

答案 0 :(得分:0)

好吧,这取决于您要使用多少时间以及文件的保存位置。 如果是服务器,则可以将Windows或Linux / Unix上的Windows PowerShell或Linux / Unix上的PowerShell核心与计划的任务/ cron作业一起使用。

您可以将作业设置为每x小时运行一次脚本。 检查每个备份文件的创建日期或上次编辑日期,并将其与当前时间戳进行比较。如果文件的编辑/创建日期超过了您设置的限制,请发送电子邮件,写日志或您希望对其进行处理。