Как указывало @Theo, свойство Filter не поддерживает регулярное выражение.Допускаются только подстановочные знаки пути.
Вам нужно будет использовать более простой подстановочный знак в своем фильтре:
# rough wildcard filter
$watcher.Filter = "*_Recon_ForeignExchange.csv"
.., а затем выполнить более конкретную (регулярное выражение) проверку в своем обработчике:
$action = {
$path = $Event.SourceEventArgs.FullPath
# check if the file name has the desired format
if ((Split-Path $path -Leaf) -match ($DateStr + "\d\d\d\d\d\d*_Recon_ForeignExchange.csv"))
$changeType = $Event.SourceEventArgs.ChangeType
$logline = "$(Get-Date), $changeType, $path"
Add-content "D:\log.txt" -value $logline
}
}
Что касается другого каталога, @vrdse уже указал, что для этого вам понадобится второй наблюдатель.