Ich möchte neue Dateien überwachen, die in einem Ordner erstellt wurden. Wenn dies passiert, möchte ich eine Batch-Datei starten (im Beispiel unten schreibe ich einfach eine Zeile in eine Log-Datei). Ich weiß nicht, warum das nicht funktioniert.Unterschied Aktion für verschiedene Dateien
Mein Code ist:
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "D:\"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
$action = {
$path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$logline = "$(Get-Date), $changeType, $path"
if ($file.Name -like "Apertura") {
Add-Content "C:\Users\F701845\Desktop\Apertura.txt" -Value $logline
} else {
Add-Content "C:\Users\F701845\Desktop\TestNO.txt" -Value $logline
}
}
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 5}
Bitte beschreiben Sie, wie es andernfalls - dort im Code für das Scheitern keinen offensichtlichen Grund ist, so dass alle zugehörigen Fehlermeldungen wäre hilfreich. –
Meine Vermutung ist, dass '$ file.Name - wie" Apertura "' 'file.Name -ähnlich" sein sollte "Apertura *" 'As' -like' ohne '*' als Wildcard ist das gleiche wie '-eq ' – BenH