Hallo zusammen, ich bin auf der Suche nach einer passenden und funktionierenden Lösung zu meinem Vorhaben. Es werden Sicherungen von den Unterverzeichnissen der angegebenen Pfade durchgeführt (lokale Verzeichnisse), die Kopien werden in einem Ordner abgelegt (Sicherungsverzeichnis) Hier ein Beispiel, wie meine Ordnerstruktur derzeit in der Testphase aussieht.
Lokale Verzeichnisse: C:\_SCRIPT-TEST\_TEST1 C:\_SCRIPT-TEST\_TEST2 C:\_SCRIPT-TEST\_TEST3 ... weitere 7 Verzeichnispfade sollen über das Skript eingetragen werden können, die Unterverzeichnisse von _Test1, _Test2 und _Test3 werden nach C:\_SCRIPT-TEST\_TEST kopiert. Sicherungsverzeichnis: C:\_SCRIPT-TEST\_TEST
Das Skript soll nun die Namen der Unterverzeichnisse innerhalb der angegebenen Lokale Verzeichnisse zusammenfassen und mit den Namen der Unterverzeichnisse des angegebenen Sicherungsverzeichnis vergleichen. Vergleichsvorgang: Es ist zu beachten, dass die Verzeichnisnamen der Unterordner zwischen Lokale Verzeichnisse und Sicherungsverzeichnis nicht gleich sind! Das Skript müsste demnach den Verzeichnisname unter lokalen Verzeichnisse auslesen und mit den unter Sicherungsverzeichnis vergleichen.
Wenn vorhanden = nichts tun
Wenn nicht vorhanden = löschen
Es sollen nur die Unterverzeichnisse unter Sicherungsverzeichnis gelöscht werden!
Verzeichnisname unter einem lokalen Verzeichnis: Sommerurlaub.Teneriffa-2009 Verzeichnisname unter dem Sicherungsverzeichnis: 01 - Sommerurlaub.Teneriffa-2009 - variabler Text
Löschvorgang: Existiert das Verzeichnis mit dem Namen Sommerurlaub.Teneriffa-2009 unter einem lokalen Verzeichnis nicht mehr, soll das Verzeichnis Namens 01 - Sommerurlaub.Teneriffa-2009 - variabler Text unter dem Sicherungsverzeichnis gelöscht werden. ======================
Im Moment habe ich ein Script, welches mir eine Zusammenfassung der Unterverzeichnisse in eine Textdatei schreibt:
@echo off
del C:\_SCRIPT-TEST\_TEST\TEST-log.txt
del C:\_SCRIPT-TEST\_TEST\TEST123-log.txt
dir C:\_SCRIPT-TEST\_TEST /A:D /B /S > C:\_SCRIPT-TEST\_TEST\TEST-log.txt
dir C:\_SCRIPT-TEST\_TEST1 C:\_SCRIPT-TEST\_TEST2 C:\_SCRIPT-TEST\_TEST3 /A:D /B /S > C:\_SCRIPT-TEST\_TEST\TEST123-log.txt
Nun bekam ich von jemandem folgenden Code mit dem es eigentlich funktionieren sollte...irgendwie stimmt da aber was nicht:
@ECHO OFF &SETLOCAL disableDelayedExpansion
FOR /d %%a IN ("C:\_SCRIPT-TEST\_TEST") DO (
SET "POName=%%~a"
SETLOCAL enableDelayedExpansion
SET "PCName=!POName:*(Kopie von =!"
FOR /f "delims=" %%b IN ("!PCName!") DO SET "PCName=%%~b"
IF NOT EXIST "!PCName!" ECHO RD /s /q "!POName!"
ENDLOCAL
)
Wäre jemand so nett mir unter die Arme zu greifen? Vielen Dank.