Powershell脚本被调用两次

Powershell脚本被调用两次,powershell,Powershell,有人能告诉我为什么当一个PDF被放入“D:\文件夹”时,下面脚本中的“Merge PDF's.bat”文件会执行多次吗?我只需要执行一次 $folder = 'D:\Folder' $filter = '*.PDF' $fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'Fil

有人能告诉我为什么当一个PDF被放入“D:\文件夹”时,下面脚本中的“Merge PDF's.bat”文件会执行多次吗?我只需要执行一次

$folder = 'D:\Folder'
$filter = '*.PDF'   

$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = 
$false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}

Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action { 
$name = $Event.SourceEventArgs.Name 
$changeType = $Event.SourceEventArgs.ChangeType 
$timeStamp = $Event.TimeGenerated 
Start-Sleep -s 15
Invoke-Item 'C:\Merge PDF\Merge PDFs.bat'}

尝试
Write Host
而不是
Invoke Item
,看看它是否被写入多次。您是否仍然有以前执行时挂起的旧事件?我的理解是,ChangeType列表中的每个项都将触发该操作。您的代码使您看起来有两个这样的筛选器触发器。因此,我注意到,如果有文件夹中有两个pdf它运行合并pdf两次。如何停止该操作。我想运行合并pdf一次。不管文件夹中有多少pdf。