Ich bin ein Neuling, versuche jedoch, eine Stapeldatei zu erstellen, die den Ordnerinhalt der Quelle liest, die Dateien mit dem Ziel vergleicht, die Übereinstimmungen sichert und verschiebt dann die Quelldateien zum Ziel. Ich schätze, der Dateiinhalt im Quellverzeichnis funktioniert wie eine Maske.Sichern bestimmter Dateien vor dem Ersetzen basierend auf dem Inhalt des Quellordners im Stapel
Gibt es eine Technik, die ich verwenden könnte, um dieses Ergebnis zu erhalten? Ich habe versucht Robocopy
und XCopy
mit nahe, aber nicht das, was ich suche. XCopy
hat eine Ausschlussoption, aber das ist das Gegenteil von dem, was ich brauche. Irgendwelche Vorschläge würden sehr geschätzt.
Die Einrichtung ist wie folgt:
Diese Ordner enthalten diese
Parent_folder_new
Folder1 Folder2 Folder3
File1 File1 File1
File2 File2 File2
File3 File3 File3
Ich habe neue Dateien, die alte zu ersetzen:
Parent_folder_old
Folder1 Folder2 Folder3
File2 File1 File1
File3 File3
Bevor die Quelldateien überschreiben die Ziel diejenigen Ich muss nur die bald überschriebenen Dateien sichern.
Ich habe eine if-Anweisung versucht, aber ich weiß nicht, wo nach den
gehen zuSet folder[1]=folder1
Set folder[2]=folder2
Set folder[3]=folder3
for F "tokens=2 delims==" %%f in ('set folder[') do (
if Parent_folder_new\%%f==Parent_folder_old\%%f
::copy results of if statement to Parent_folder_backup\%%f
)
Ich hoffe, das klärt etwas von dem, was ich zu tun versuchen.
Bitte teilen Sie, was Sie versucht haben und beschreiben Sie genau, was Sie Probleme haben, dann können wir Ihnen vielleicht helfen. – aschipfl
Ich habe die Details aktualisiert, ich hoffe, dies hilft – Sid
Ihr Ansatz scheint ein bisschen unflexibel zu sein, da es mehr als 3 Ordner im übergeordneten Speicherort geben könnte; Gibt es nur eine Verzeichnisebene oder ist es ein tiefer Baum? Wenn Letzteres wahr ist, möchten Sie nur die erste Verzeichnisebene behandeln und die tiefer liegenden Elemente ignorieren? Wie auch immer, wenn ich es richtig verstanden habe, könnten Sie 'xcopy/L/U' verwenden, um eine Liste von Dateien zu erhalten, die kopiert werden sollen ('/L' sagt 'xcopy', um nur Elemente aufzulisten, aber nicht zu kopieren) die Eingabe für einen Backup-Job, und dann 'xcopy/U' (ohne die'/L' Schalter, um diese Zeit wirklich zu kopieren) ... – aschipfl