Robocopy
hat die Option, das Quellverzeichnis zu überwachen und alle Dateien mit Änderungen zu kopieren. Sie können angeben, wie viele Änderungen im Verzeichnis vor dem Kopieren vorgenommen werden müssen ( /mon n
wo n
ist die Anzahl der Änderungen) und wie lange vor dem erneuten Scannen gewartet werden muss ( /mot t
wo t
in Minuten gewartet werden muss).
Ich möchte einen Ordner fast ununterbrochen überwachen, da ich nur eine Datei scanne und Änderungen im Grunde genommen sofort erfolgen sollen. Ich kann nicht scheinen, Robocopy-Monitor für eine Zeitspanne von weniger als einer Minute zu machen. Ich habe es versucht /mot 0.5
und es schlägt fehl. Ich habe auch versucht, /mot 0
Robocopy nur nach einmaligem Scannen zu beenden, ohne es kontinuierlich zu überwachen.
Wie kann ich einen Ordner nahezu kontinuierlich mit Robocopy-Scans in Zeitschritten von weniger als 1 Minute scannen lassen? Gibt es alternativ ein anderes Befehlszeilentool, das eine Dateiquelle ständig überwachen und Änderungen in Echtzeit kopieren kann?
quelle
Antworten:
Robocopy
Da es nur Minuten als Argument akzeptiert, kann man es wohl nicht zwingen, öfter zu laufen. Sie können es jedoch mit einer Batch-Datei ausführen und das Timing & Looping in der Batch-Datei oder bei geplanten Aufgaben anstatt innerhalb der Robocopy ausführen lassen.
quelle
Ihre Tags geben an, dass Sie Windows 8 verwenden. Dies ist gut, da Sie das großartige Tool PowerShell und ein praktisches kleines Cmdlet mit dem Namen haben
Register-ObjectEvent
.Erstellen Sie eine Textdatei, ändern Sie die Erweiterung in
.ps1
und fügen Sie das folgende Skript in die Datei ein. Ändern Sie die$watchedFolder
Variable in den Ordner, den Sie überwachen möchten. Ändern Sie die Do-Something-Funktion so, dass sie Ihren Robocopy-Befehl oder was auch immer enthält. Führen Sie das Skript aus, solange das Skript ausgeführt wird. Diese Funktion wird (fast sofort!) Ausgeführt, wenn eine Datei oder ein Ordner im überwachten Ordner geändert wird.Sie könnten dieses Skript beim Start von Windows ausführen lassen und es würde jederzeit im Hintergrund ausgeführt, ohne einen Timer zu verwenden.
Sehen Sie es in Aktion
Führen Sie das gespeicherte Skript aus.
Sie werden sehen, dass ein Konsolenfenster blinkt. Nach dem Schließen werden nur einige neue Prozesse angezeigt.
Machen Sie einige Dinge auf Ihrem Desktop, um sie zu testen.
Einige Hintergrundinformationen - Falls Sie mit den in dieser Antwort verwendeten Tools nicht vertraut sind.
System.IO.FileSystemWatcher
Sie auf der MSDN-Seite .quelle
DSynchronize ist ein eigenständiges Dienstprogramm, mit dem Sie regelmäßig zwei oder mehr Ordner auf Festplatte, Diskette, LAN, USB-Stick, CD-DVD (mit Paketschreibsoftware) und FTP-Server synchronisieren können. Es ist nicht genau das, worum es bei der Frage geht, aber das Nächste, was ich finden konnte.
Auch ich suchte nach einer Lösung für die Mindestzeit von 1 Minute in Robocopy und fand diese zwei Jahre alte Frage. Am Ende wurde mir diese Software vorgeschlagen, und genau das verwende ich. Für die Aufzeichnung habe ich keine Zugehörigkeit zur Software.
Vorteile:
Nachteile:
Die Echtzeit-Synchronisierungsoption ist im Screenshot unter dem Abschnitt 'Spezielle Optionen' markiert. Dies scheint die Frage als Ziel zu beschreiben. Wenn dies nicht aktiviert ist und Sie keinen Timer eingestellt haben, können Sie auf die Schaltfläche "Synchronisieren" klicken, um eine einmalige Synchronisierung zu starten.
So synchronisieren Sie zwei Ordner:
Ich habe auch dieses YouTube-Video gefunden , das die Software in Aktion zeigt. Es zeigt eine ältere Version und die Optionen befinden sich nicht an derselben Stelle, vermittelt jedoch ein Gefühl für die Funktionsweise der Software.
quelle