Batch Datei alle paar Sekunden ausführen?
Hallo liebe Leser,
folgende Problemstellung:
Ich lege automatische Protokolle in .txt Format in einem Verzeichnis ab (D:\Protokolle). Aus diesem Ordner greift eine externe Firma die Protokolle ab und Löscht diese aus dem Verzeichnis.
Hier gibt es jetzt Probleme das die Firma sagt sie erhält ab und an keine Protokolle. Ich bin mir aber sicher das meine Ablage sauber funktioniert. Ich hatte nun vor sobald die Protokolle erstellt werden diese automatisch noch in ein Backupverzeichnis zu kopieren. Dafür habe ich eine kleine Anwendung geschrieben: copy d:\Protokolle*.* d:\PBackup*.* Das ganze als .bat abgespeichert. Nun möchte ich das die .bat alle 5 sekunden ausgeführt wird. Mit den automatischen Tasks von Windows komm ich aber minimal auf 5min.
Hat heir jemand eine Idee wie ich die Protokolle am besten schon bei Erstellung wegsichern kann?
2 Antworten
Erstens:
Was Suboptimierer sagt.
Batch ist zu sehr REALTIME und belastet die CPU enorm. Ein VBScript ist da deutlich dezenter. Ist zwar etwas mehr Code, dafür aber auch flexibler einsetzbar.
Zweitens:
Außerdem kannst Du die Ausführung noch effizienter (im Hintergrund) mit dem Task-Planer/Aufgabenplanung einrichten. Dadurch bleibt der Job aktiv, auch wenn er mal abstürzen oder manuell beendet werden sollte.
Natürlich auch nur solange der Job selbst aktiviert bleibt. Aber das ist "aus versehen" etwas zu umständlich zu gestalten. ;-)
––––––––––
Übrigens kannst Du den Abruf-Ordner auch ganz simpel verfügbar machen:
MKLINK /J "d:\PBackup"
"d:\Protokolle"
Einmal ausführen und kein dauerndes Kopieren/Verschieben.
Du könntest ein VBScript in einer Endlosschleife laufen lassen.
Dim oShell Set oShell = CreateObject("WScript.Shell") While True
oShell.Run "mein.bat"
WScript.Sleep 5000
Wend
(ungetestet)
Natürlich könntest du, solltest du dich für diese Variante entscheiden, gleich alles in VBS abhandeln.