Я хочу постоянно отслеживать любые новые файлы в папке ... если какой-либо новый файл, мой сценарий должен выбрать файл и начать его обработку.
После поиска в Google я нашел это решение, и оно прекрасно работает для меня ..
$folder = 'G:\localexcelfiles\Logistics\logistics automation'
$filter = '*.*' # <-- Takes only files that has xlsx extension
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubdirectories = $false
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$path = $Event.SourceEventArgs.FullPath
$Filename = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
}
Для запуска этого скрипта я открываю Windows PowerShell ISE и запускаю следующую команду
./scriptname
это запускает мой скрипт и создает наблюдателя для моей папки ... и если я пытаюсь запустить скрипт снова, он выдает ошибку, говорящую "подписчик уже существует"
Но проблема в том, что ... если я закрываю ISE powershell, где я запускал скрипт ... мой скрипт также останавливается и наблюдатель также удаляется
Как убедиться, что этот FileSytemWatcher должен работать 24X7?
это можно сделать, если мой скрипт запускается с помощью планировщика заданий?