Итак, у меня есть скрипт powershell, в основном взятый из подобного вопроса, который может обнаружить, когда определенный тип файла добавляется в определенную сеть, и отправлять электронные письма, когда это происходит:
Function Watcher{
param ($folder, $filter, $to, $Subject)
$watcher = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubdirectories = $true
EnableRaisingEvents = $true
}
$changeAction = [scriptblock]::Create('
$path = $Event.SourceEventArgs.FullPath
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file $name was $changeType at $timeStamp"
$Body = "The file $name was $changeType at $timeStamp"
Email $to $Subject $Body
')
Register-ObjectEvent $Watcher -EventName "Created" -Action $changeAction
}
Однако Я хочу изменить это так, чтобы это могло быть полезно для этого приложения: сейчас есть инструмент, добавляющий данные (файлы .datx) в сеть (несколько файлов в минуту), и я хотел бы получать уведомление по электронной почте в тот момент, когда данные готовятся к записи. Как мне проще всего изменить это так, чтобы при запуске первоначального наблюдателя он ждал, чтобы это произошло снова, и сбрасывает, если так, но затем продолжает, если нет? Или лучше создать совершенно новый сценарий? По сути, как сделать так, чтобы наблюдатель активировался одиночным файлом .datx, загружаемым в сеть, но не вызывал его потоком (кроме самого последнего)