Entfernen des “Versteckt”(hidden)-Attributs von einem Ordner nach einer Robocopy-Aktion

Wenn man mit Robocopy ein komplettes Laufwerk in ein Verzeichnis auf einem anderen Datenträger kopiert, wird man feststellen, dass der Zielordner plötzlich versteckt ist. Das heißt, das Hidden-Attribut des Ordners ist gesetzt. In den Dateieigenschaften kann man dieses hidden Flag auch nicht deaktivieren. Die Checkbox ist ausgegraut.

Versteckt Attribut eines Ordners gesetzt aber nicht bearbeitbar
Versteckt Attribut eines Ordners gesetzt aber nicht bearbeitbar

Verursacht wird dieses Verhalten, wenn mit Robocopy Systemdateien wie z.B. der Ordner “System Volume Information”  mit in das Zielverzeichnis kopiert werden. Dadurch wird anscheinend im übergeordneten Ordner auch das System-Flag gesetzt und gleichzeitig das Hidden-Flag. Ein erster Versuch mit dem Kommandozeilenprogramm attrib

attrib -h ORDNERPFAD

das Hidden-Flag zu entfernen, schlug fehl. Die Fehlermeldung lautete “Systemdatei wird nicht zurückgesetzt”. Also versuchte ich mit

attrib -s ORDNERPFAD

das System-Flag des neuen Ordners zu entfernen. Aber auch hier erscheint die Fehlermeldung “Versteckte Datei wird nicht zurückgesetzt”.

Erst die Kombination der beiden Parameter brachte den gewünschten Erfolg.

attrib -s -h  /S ORDNERPFAD

Nun wurde das Hidden-Attribut des Ordners entfernt. Der Parameter /S sorgt dafür, dass auch rekursiv alle Unterordner und Dateien bearbeitet werden.

Beteilige dich an der Unterhaltung

21 Kommentare

  1. Großen Dank, genau das habe ich bei meinem Problem mit dem Versteckten Ordner mittels robocopy gesucht. Danke!!

  2. Das geht theoretisch auch direkt mit dem robocopy-Parameter: /A-:HS

    Die Praxis zeigt allerdings, das dies zuverlässig nur in Kombination mit:

    /XD Software $RECYCLE.BIN “System Volume Information”

    funktioniert. Offenbar kann robocopy für diese Verzeichnisse keine Attribute setzen und in der Folge bleiben auch die übergeordneten Ordner versteckt!

  3. !!! DANKE !!! Ich habe mein Backup auf Robocopy umgestellt, und nachdem der erste durchlauf fertig war, hatte ich festgestellt dass im Ziel der Backupordner fehlte – erstmal Panik und dann Ratlosigkeit weil per GUI das versteckt attribut nicht entfernbar war. Vielen Dank dass du die Lösung online gestellt hast! Aber… dein Befehl funktionierte so auf anhieb nicht, ich musste noch den Schalter /D setzen – das schließt Ordner mit ein, sonst wendet er die Attribute nur auf Dateien an! Ich habe das attrib-kommando jetzt in mein Backup-Script aufgenommen; finde ich komfortabler (und sicherer) als in robocopy mit ordner-ausnahmen rumzufriemeln.

  4. DANKE LEUTE!!!!!!!!!! ICH LIEBE EUCH XD vielen dank allerdings an philipp, das mit dem /D war bei mir nämlich genau der fall 🙂

  5. Hey Leute,

    funktioniert es auch so, dass lediglich nur der Zielordner (in den die ganzen gesicherten Dateien reinkommen) nicht mehr versteckt wird, OHNE jedoch, dass die kopierten Ordner & Dateien ihre bereits vorhanden “versteckt”/”nicht versteckt”-Attribute verlieren?!? Die sollen nämlich so bleiben, wie sie sind!

    Das ist nämlich mein Problem!

    Danke im Voraus

    Peter

  6. Der /A-:HS Parameter brachte den Erfolg in Kombination mit dem /XD der beiden Systemverzeichnisse.
    Ärgerlich ist, dass Microsoft den Parameter /A nicht in der robocopy Hilfe scheinbar nicht richtig dokumentiert hat. Dort heisst es nur: “Kopiert nur Dateien mit dem “Archive”-Attribut.” von jeglicher Attributsänderung (Hidden, System) ist dort nicht die Rede!
    Außerdem sagt mir Robocopy unter Win7, dass der Befehl /D unbekannt sei.

  7. Hallo Leute,
    ich habe das selbe Problem, arbeite aber mit einer bat-Datei. Da ich insoweit leider als DAU gelten muss, wäre ich dankbar, wenn jemand die Attribute, die das Problem des versteckten Zielordners lösen, in meine bat-Datei einpflegen könnte.

    Vielen Dank für Eure Hilfe!
    woerndl

    Hier die bat-Datei:

    rem _________________________________________________________________________
    SET “Quelle=D:”
    SET “Ziel=\\MUSIC\Tagesbackup\SERVER\”
    rem _________________________________________________________________________

    call :Datum
    SET “ZIELkomplett=%Ziel%\%CDateTime%”
    md %ZIELkomplett%
    set “LogDatei=%ZIELkomplett%\#LOGFILE.txt”

    rem _________________________________________________________________________
    ROBOCOPY “%Quelle%” “%ZIELkomplett%” /R:0 /W:0 /copy:dat /S /M /ZB /NP /TEE /FFT /NS /NC /NDL /XD „System Volume Information“ /log+:%LogDatei%
    rem _________________________________________________________________________

    :Datum
    @echo Off
    FOR /F “tokens=1,2,3,4 delims=/. ” %%a in (‘date/T’) do (set CDATE=%%c-%%b-%%a
    set CMonat=%%c-%%b)
    for /f “tokens=1,2 delims=:” %%e in (‘time /t’) do set CTIME=%%e-%%f
    set CDateTime=%cdate%-%Ctime%
    GOTO :eof

    exit
    rem E N D E
    rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    rem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  8. moin,

    bei mir funktioniert das leider so nicht. Ich bekomme immer die Fehlermeldung: “Datei nicht gefunden”, wenn ich den Pfad angebe. Also es existieren 2 Ordner auf meiner Platte. Der eine hat z.B. den Namen:
    “460637”
    C:\> attrib -s -h /S F:\460637
    Datei 460637 nicht gefunden.
    Jemand eine Idee?

    Vielen Dank

  9. Ich hatte das gleiche Problem wie mein Vorredner nillix. Immer wieder kam diese Fehlermeldung. Irgendwie, allerdings weiß ich nicht wie, habt’s dann doch geklappt. Nachdem robocopy aber nochmal gelaufen ist, war der Ordner wieder versteckt. Das nervt wirklich.

  10. Versuche mal “attrib -S -H /S /D Ordnername” das hat bei mir geklappt. Vorher kam auch die Meldung Datei nicht gefunden.

  11. Hallo, ich habe Robocopy in ein C# Programm eingebunden, der befehl lautet:

    @”D:\ .\Datensicherung /XD System Volume Information /e /w:1 /xf /Purge /log:\”+myzeit+”_ges.log”;

    Kann mir jemand helfen und meinen Code vervollständigen? Ich habe keine ahnung wo ich das einfügen sollte. Ich bin langsam am verzweifeln…

  12. Hi Leute, danke für den Tip. Hatte das Problem, dass auf meiner SD Karte für mein Navi im IGO Navi Programm der Ordner content versteckt war. Dieses Attribut ließ sich auch nicht mit attrib -s -h /s entfernen. Erst der Zusatz /D brachte den Erfolg.

  13. Vielen Dank für diesen Tipp. Es hat auf Anhieb funktioniert und mich davor bewahrt, eine neue 2 Terra-Platte zu formatieren.

  14. Einfache Lösung:

    Hatte das gleiche Problem wie alle hier. Einmal ein einfacher Standardvorgang . 1:1 Kopie eines Verzeichnisbaums anlegen:
    Beispiel: robocopy “z:” “f:\Backup\ZiellOrdner\” / MIR
    Fürht dazu, dass Systemdateien mit kopiert werden. Wenn z: das Root eines Laufwerkes ist, dann wird der oberste Zielordner “versteckt” (HIDDEN, oder Atributt H) und zu einem Systemordner (Attribut S).

    Hat man so kopiert, so ist der Hauptordner unsichtbar. Hier also “ZielOrdner”

    Lösung:
    robocopy “z:” “”f:\Backup\ZeilOrdner\” /MIR /XD /A-:HS

    Parameter /XD (siehe Hilfe robocopy /?) verhindert das Kopieren der “System Volumen Informationen”.
    Siehe Robocopy-Hilfe:

    ” Bei Verwendung von /PURGE oder /MIR für das Stammverzeichnis des Volumes
    wird Robocopy veranlasst, den angeforderten Vorgang auch auf Dateien im
    Verzeichnis ” System Volume Information” anzuwenden. Wenn dies nicht
    beabsichtigt ist, kann Robocopy mit dem Schalter “/XD” veranlasst werden,
    dieses Verzeichnis zu überspringen.”

    Parameter /A-:HS entfernt im Ziel das System- und Hidden-Attribut.

    Der Zielordner ist danach sofort wieder “normal” sichtbar.

    Wenn man also gezielt KEINE Systemdateien kopieren möchte, dann ist das die einfache Lösung.

    Getestet auf einem Windows 2012R2 Server mit allen aktuellen Patches (Stand 10.02.2020) und
    einem 45GB Testverzeichnis, gespiegelt über VPN als SMB-Freigabe.

    (-:

  15. @MCH
    Danke dir, endlich einer der es auch Verständlich beschrieben hat, sodass auch ein Leihe versteht was mit den Befehlen gemacht wird.
    Endliche ist der Ordner sichtbar nach dem Backup.

  16. Obwohl der letzte Eintrag hier schon älter ist, scheint das Problem immer noch aktuell zu sein. Ich musste heute feststellen, dass es sogar Auswirkungen auf den Quellordner hat, was ich ziemlich krass finde!
    robocopy c:\Daten\DB\Original\Dokumente e:\Backup\Dokumente /COPYALL /PURGE /R:2 /W:30 /IM /NP /MT:4
    Hier hat der Ordner “c:\Daten\DB\Original\Dokumente” das System- und Hidden-Attribut gesetzt (ist von der eingesetzten Software so vorgegeben, die Ordnernamen wurden natürlich “anonymisiert”). Nach dem Kopiervorgang hat der Ordner “c:\Daten\DB\Original” das System- und Hidden-Attribut gesetzt (was er vorher nicht hatte). Der Vorgang kann zuverlässig wiederholt werden. Nach dem Hinzufügen des “/A-:HS” tritt der Fehler nicht mehr auf.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert