2017-04-05 12 views
0

このコードを使用してファイルサーバーのファイル名の変更を監視しようとしました。しかし、私は、エクステンションが変更されたときだけイベントをトリガーしたいと思う。Powershell:FileSystemWatcherのファイル名変更

### 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

今後、powershellに関する質問にpowershellタグを追加することをお勧めします。多くの知識豊富なPowerShellのユーザーがここにあり、それらがあなたをより迅速に支援するのに役立ちます! – Persistent13

答えて

0

$ watcher変数のNotifyFilterプロパティをFileNameにのみ設定します。

$watcher.NotifyFilter = 'FileName' 

これで、ファイル名の変更だけがトリガーされます。

関連する問題