Eu pensei em experimentar o RoboCopy para espelhar o conteúdo de uma pasta em outro disco rígido. E parece que funcionou. Mas, por algum motivo, para ver a pasta de destino, tenho que ativar Mostrar arquivos, pastas e unidades ocultas e desativar Ocultar arquivos protegidos do sistema operacional . Por que é isso? Tanto a pasta de origem quanto a de destino eram inicialmente diretórios visíveis e normais. Quando abro as propriedades dessa pasta de destino, o atributo Oculto fica desativado. O que está acontecendo aqui?
É porque eu o executei em um prompt de comando do administrador? Ou é um problema com minha escolha de modificadores? Ou a robocópia realmente funciona dessa maneira?
robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA
Atualização: tentei copiar outra unidade para outra pasta e o mesmo aconteceu lá. Mas quando tento copiar uma pasta para uma pasta diferente, a pasta de destino permanece normal. Poderia ser porque eu copio uma unidade? Se sim, como posso impedir que isso aconteça? Porque eu realmente quero copiar toda a unidade ...
Respostas:
No meu sistema (Vista), o powershell mostra a unidade c: \ como tendo os atributos oculto e do sistema definidos.
Após copiar os arquivos, você pode usar o attrib para corrigi-los. Confira attrib /? para detalhes.
fonte
$
). Eu corriGet-Item
nessa parte e também diz,d--hs
então acho que essa é a razão! Obrigado!Tem a ver com copiar as informações de volume do sistema ocultas / do sistema a partir da raiz de um disco - se elas forem copiadas, o diretório de destino obterá os mesmos atributos system / hidden.
Criar o diretório antes de copiar não ajuda, pois a robocopy também o ocultará.
Adicione a
/A-:SH
opção para ignorar arquivos do sistema.Mais informações nesta discussão do Microsoft Technet .
fonte
Eu também encontrei esse problema. Parece que essa pasta oculta aparece quando o diretório de origem é a raiz da unidade, por exemplo.
D:\
ouF:\
. Essas pastas conterão o sistema e atributos ocultos e, sendo uma pasta raiz de origem, não podem ser removidas peloattrib -s -h
comando.Neste exemplo,
F:\
é a fonteG:\
é o destino.Você pode ver os atributos no PowerShell. Você verá o modo
d--hs
para diretório, oculto e sistema. Experimente oget-item
comandoC:\> Get-Item F:\
O robocopy supostamente não o criará como uma pasta oculta se a pasta existir. Eu li em algumas postagens que usar a
/CREATE
fará o truque ou você pode criar as pastas manualmente antes do tempo. Eu tenho que fazer mais testes, bem como outras combinações para verificar isso completamente.Caso contrário, você pode fazer um
attrib -h -s G:\Destination_Folder
para remover o sistema e o atributo oculto após a cópia.fonte
Use a solução de M Aguilar se você não se importa de correr
attrib
depois. Outra solução seria apenas criar o diretório de destino com antecedência:mkdir I:\E
robocopy E: I:\E /COPYALL /E /R:0 /MIR /B /ETA
fonte