Вы подписаны только на событие Changed - это происходит, когда содержимое файла изменяется или копируется. Это не включает файлы, которые созданы или перемещены.
Может потребоваться повозиться, чтобы получить вывод так, как вы хотите, но следующее должно работать:
$source = "C:\Ops" $filter = "*.*" $fsw = New-Object System.IO.FileSystemWatcher $source, $filter -Property @{ IncludeSubDirectories=$false NotifyFilter = [System.IO.NotifyFilters]'FileName, LastWrite' } $onCreated = @() @( "Changed", "Created", "Renamed" ) | Foreach-Object { $onCreated += Register-ObjectEvent $fsw -EventName $_ -SourceIdentifier "MyFolderBReports_$_" -Action { $path = $Event.SourceEventArgs.FullPath $name = $Event.SourceEventArgs.Name $changeType = $Event.SourceEventArgs.ChangeType $timeStamp = $Event.TimeGenerated Write-Host "The file '$name' was $changeType at $timeStamp" Move-Item C:\Ops\*.* -Destination C:\Ops\Test } }
Это регистрация в событиях Created и Renamed в дополнение к событию Changed, поэтому должна охватывать все ваши базы. Глядя на $fsw | GM
шоу есть дополнительно Deleted
, Disposed
и Error
событие, но и для ваших целей я не думаю, что они необходимы.