Kann man Ordner ausschließen wenn man sie per batch-datei(xcopy) kopiert?
Bin grad dabei ein Programm zuschreiben welches mein user Ordner kopiert will aber das er die appdata nicht mit kopiert wie kann ich das machen ?
Bin grad dabei ein Programm zuschreiben welches mein user Ordner kopiert will aber das er die appdata nicht mit kopiert wie kann ich das machen ?
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Batch
Eigentlich ganz einfach:
@echo off
chcp 65001 >nul & rem Umlaute erlauben
rem achtung! Pfad darf keine Leerzeichen enthalten! %temp% ist als ordnervariable legitim, da diese keinen Pfad mit Leerzeichen liefert.
set "excludeList=%temp%\exclude.txt"
rem Dateien/Ordner in ExcludeListe schreiben
rem entweder den vollen Pfad oder einen markanten Teil des Pfades
rem Wildcards (*?) werden nicht akzeptiert. Die Dateien Ordner, welche den angegebenen String enthalten werden ausgeschlossen
echo %userprofile%\Appdata\ >"%excludeList%"
rem falls weitere Dateien/Ordner Ausgeschlossen werden sollen diese anhängen. Achtung mit >>
echo \desktop\ >>"%excludeList%"
rem diese Zeile wäre für Quellen wie Users/.../ wichtig, da Kopien der UserRegistry (NTUSER.DAT*)...
rem beim zurückspielen von Backups das Nutzerprofil "zerschießen" können (passiert sehr häufig)...
rem (also gleich beim Backup ausschließen, da kommt man garnicht erst in "Versuchung")
echo NTUSER.DAT >>"%excludeList%"
rem kopiere aktuellen Nutzerordner nach F:\test\
rem Parametererklärung: s:Unterordner , h:Versteckt und System y:im Ziel vorhanden? überschreiben erlauben,
rem c:nach (lese)fehler Fehlern mit der nächsten Datei weitermachen (ganz wichtig bei Programm-/Profilordnern, da einige Dateinen von anderen programmen blockiert sein können und XCopy sonst abbricht!)
rem exclude:ausschlissliste(n)
xcopy "%userprofile%\*" "f:\test\*" /shyc /exclude:%excludeList%
pause
In der Regel werden die Syntaxregeln für XCopy nur falsch verstanden.
Der Schalter /exclude: weist nicht auf die auszuschließenden Datei-/Ordnernamen ,sonder auf eine Datei, welche eine Liste von Strings enthält, welche nicht in den zu kopierenden Quelldateinamen enthalten sein dürfen
also schreibt man alles was ausgeschlossen werden soll in die Ausschlußliste(n) und übergibt diese an den Schalter /exclude:
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
xcopy x y /exclude:except.txt
Woher ich das weiß:Studium / Ausbildung – Informatikstudent