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 ...

Svish
la source
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.

M Aguilar
la source
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 .

xcxc
la source
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.

JP Babiera
la source
-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
jofafrazze
la source
2
Cela n'aide pas - E est défini sur le système caché après la copie.
Flyto