2017-04-05 3 views
0

Ich habe versucht, mit diesem Code Dateinamenänderungen auf unserem Fileserver zu überwachen. Aber ich möchte nur das Ereignis auslösen, wenn sich die Erweiterung ändert.Powershell: FileSystemWatcher für Dateinamenänderung

Irgendwelche Suggien?

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO 
$watcher = New-Object System.IO.FileSystemWatcher 
$watcher.Path = "E:\" 
# $watcher.Filter = "*.*" 
$watcher.IncludeSubdirectories = $true 
$watcher.EnableRaisingEvents = $true 

$action = { $path = $Event.SourceEventArgs.FullPath 
      $changeType = $Event.SourceEventArgs.ChangeType 
      $Name = $Event.SourceEventArgs.Name 
      $logline = "$(Get-Date), $changeType, $path, $name" 
      Add-content "E:\log.txt" -value $logline 
      } 

Register-ObjectEvent $watcher "Renamed" -Action $action 
while ($true) {sleep 5} 
+0

In Zukunft würde ich empfehlen, die Powershell-Tag zu jeder Frage im Zusammenhang mit Powershell hinzufügen. Es gibt eine Reihe von kenntnisreichen Powershell-Benutzern hier und das wird ihnen helfen, Sie schneller zu unterstützen! – Persistent13

Antwort

0

Setzen Sie die NotifyFilter-Eigenschaft in der $ Watcher-Variablen nur auf FileName.

$watcher.NotifyFilter = 'FileName' 

Jetzt wird die Aktion nur für Dateinamenänderungen ausgelöst.

Verwandte Themen