Sie haben das Changed-Ereignis nur abonniert. Dies geschieht, wenn der Inhalt einer Datei geändert oder kopiert wird. Dies gilt nicht für Dateien, die erstellt oder verschoben werden.
Möglicherweise möchten Sie basteln, um die Ausgabe wie gewünscht zu erhalten. Folgendes sollte jedoch funktionieren:
$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 } }
Dies ist eine Registrierung für die erstellten und umbenannten Ereignisse zusätzlich zum geänderten Ereignis. Sie sollten also alle Ihre Basen abdecken. Mit Blick auf $fsw | GM
Shows gibt es zusätzlich Deleted
, Disposed
und Error
Ereignisse, sondern für Ihre Zwecke Ich glaube nicht, dass sie erforderlich sind.