Pourquoi RoboCopy crée-t-il un dossier système caché?


10

Je pensais que j'essaierais RoboCopy pour mettre en miroir le contenu d'un dossier sur un autre disque dur. Et ça a marché. Mais, pour une raison quelconque, pour voir le dossier de destination, je dois à la fois activer Afficher les fichiers, dossiers et lecteurs cachés et désactiver Masquer les fichiers protégés du système d'exploitation . Pourquoi est-ce? Le dossier source et le dossier de destination étaient initialement à la fois des répertoires visibles et normaux. Lorsque j'ouvre les propriétés de ce dossier de destination, l' attribut caché est même désactivé. Qu'est-ce qui se passe ici?

Est-ce parce que je l'ai exécuté dans une invite de commandes administrateur? Ou est-ce un problème avec mon choix de modificateurs? Ou est-ce que robocopy fonctionne vraiment de cette façon?

robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA

Mise à jour: J'ai essayé de copier un autre lecteur dans un autre dossier, et j'ai eu la même chose là-bas. Mais lorsque j'essaie de copier un dossier dans un autre dossier, le dossier de destination reste normal. Serait-ce parce que je copie un lecteur? Si oui, comment puis-je empêcher que cela se produise? Parce que je veux vraiment copier tout le disque ...


La création du répertoire à l'avance ne fonctionne pas. Dès que vous exécutez à nouveau la copie du robot, les attributs la rendent à nouveau cachée. La commande d'attribut fonctionne.

Réponses:


9

Sur mon système (Vista), PowerShell affiche le lecteur c: \ comme ayant des attributs cachés et système définis.

    PS C:\Users\michael.DOMAIN> Get-Item c:\


    Directory:


Mode           LastWriteTime       Length Name
----           -------------       ------ ----
d--hs     8/18/2009 12:19 PM        <DIR> C:\

Après avoir copié les fichiers, vous pouvez utiliser attrib pour les corriger. Découvrez attrib /? pour plus de détails.


Hm, ouais, mes trois disques durs ont aussi ces attributs ... Ce qui est étrange, c'est que mes disques D et E ont un dossier système caché quand je les ai copiés dans des dossiers sur un disque externe, tandis que le disque C n'a pas Oo Je ne comprends pas ...
— Svish

J'ai le même problème avec un partage réseau caché ( $). J'ai couru Get-Itemsur cette part et ça dit aussi d--hsdonc je suppose que c'est la raison! Merci!
— Chris Haas

Cela peut également être vrai pour les partages réseau en général, comme dans notre boîte Synology NAS, qui marque \\ nas \ sharename comme dossier caché. Lorsque vous copiez ce dossier avec robocopy avec le / copyall ou / COPY: xAxxxx qui inclut les attributs (A), le dossier de destination est créé avec les mêmes attributs que la source.
— BeowulfNode42

9

Il s'agit de copier les informations de volume système cachées / système à partir de la racine d'un disque - s'il est copié, le répertoire cible obtient les mêmes attributs système / caché.

La création du répertoire avant la copie n'aide pas car robocopy le masquera également.

Ajoutez le /A-:SHcommutateur pour ignorer les fichiers système.

Plus d'informations dans cette discussion Microsoft Technet .


6

J'ai également rencontré ce problème. Il semble que ce dossier caché apparaisse lorsque le répertoire source est une racine du lecteur, par exemple. D:\ou F:\. Ces dossiers contiendront le système et les attributs cachés, et étant un dossier racine source, il ne peut pas être supprimé par la attrib -s -hcommande.

Dans cet exemple, F:\la source G:\est la destination.

Vous pouvez voir les attributs dans PowerShell. Vous verrez le mode d--hsde répertoire, caché et système. Essayez la get-itemcommandeC:\> Get-Item F:\

Robocopy ne le créera pas en tant que dossier caché si le dossier existe. J'ai lu sur quelques articles que l'utilisation d'un /CREATEfera l'affaire, ou vous pouvez créer les dossiers manuellement à l'avance. Je dois faire d'autres tests ainsi que d'autres combinaisons pour le vérifier complètement.

Sinon, vous pouvez faire un attrib -h -s G:\Destination_Folderpour supprimer le système et l'attribut masqué après la copie.


-1

Utilisez la solution de M Aguilar si cela ne vous dérange pas de courir attribaprès. Une autre solution serait de simplement créer le répertoire cible au préalable:

  1. mkdir I:\E
  2. robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA

2
Cela n'aide pas - E est défini sur le système caché après la copie.
— Flyto
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.