2017-04-05 59 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' 

現在該操作只會觸發文件名更改。