【问题标题】:Monitoring files in folders监视文件夹中的文件
【发布时间】:2019-03-09 18:37:27
【问题描述】:

所以我的代码现在可以通过在未添加文件时通知我来工作。 我现在的问题是我有更多的客户,而我的 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
}
}

【问题讨论】:

  • 编写一个检查文件夹最后修改时间戳的脚本。当您的条件成立时,给自己发送一封电子邮件。
  • 我是写脚本的菜鸟。我需要帮助。
  • 那么您对 ​​* 的意图有误解。我们不是来为您编码或教您如何从头开始编码。该网站的创建是为了帮助其他人解决他们遇到问题的现有代码。
  • 您是否曾经费心至少阅读tour 或文章How to Ask
  • 对不起,我现在有。

标签: windows powershell batch-file synchronization directory


【解决方案1】:

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

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

【讨论】: