exclua o diretório recursivo criado pelo robocopy quando “O nome do arquivo é muito longo”

exclua o diretório recursivo criado pelo robocopy quando “O nome do arquivo é muito longo”

Depois de executar robocopy.exe para fazer backup de uma pasta C:\Users\ sem usar o /xjswitch, acabei com um diretório recursivo que era muito longo. Por exemplo, se você executar, dir /b /sreceberá o seguinte erro:

O nome do diretório C:\Users\ ... \AppData\Local\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Dados\Dados de aplicativos são muito longos.

Tentei excluí-lo com rmdir "Application Data" /smas recebi o erro "O nome do arquivo é muito longo"

Procurei outras soluções, mas pensei que poderia usar a ferramenta quecausadoa questão aresolveristo.

Responder1

Crie um diretório vazio com mkdir emptye use robocopy empty\ "Application Data\" /mir"o qual removerá toda a árvore de diretórios. Em seguida, emita um rmdir emptye rmdir "Application Datapara limpar e pronto.

Responder2

Você pode conseguir ir cdfundo o suficiente no diretório para excluir o que está abaixo e cdvoltar ao topo novamente e excluir o que resta.

Se isso não funcionar e você ainda estiver travado, baixe odemonstração gratuitaversão do meu shell Hamilton C (divulgação completa: sou o autor) e uso ormutilitário que vem com ele usando as opções -r(recursiva) e -x(excluir qualquer coisa).

rm -rx directoryname

O meu rmusa o novonome de arquivo Unicode longoformato internamente, permitindo manipular caminhos de até 32K caracteres, e isso deve funcionar.

Se você descobrir que o problema também envolve permissões, talvez seja necessário usarsudoou supara elevar, por exemplo,

sudo rm -rx directoryname

Em casos realmente difíceis, você pode ser bloqueado por uma ACL que impede o acesso, por exemplo, caclsreports Everyone:(DENY). Nesse caso, pode ser necessário remover essa ACE (entrada de controle de acesso).

cacls directoryname /e /r everyone

Finalmente, pretendo realmente que isso seja útil. Os logs do meu servidor me dizem que as pessoas estão baixando meu software para tentar isso e quero que funcione. Se você encontrar um caso em que isso não aconteceu, espero que você me diga para que eu possa depurar o motivo e fazer com que funcione. Coisas que você não pode excluir acontecem muito e eu gostaria que todos os casos fossem cobertos.

Responder3

Você também pode tentar um dos seguintes;

Resolução 1:Use um nome 8.3 gerado automaticamente para acessar o arquivo

Resolução 2:Renomeie ou mova uma pasta profunda

Resolução 3:Mapear uma unidade para uma pasta na estrutura do caminho Mapear uma unidade para uma pasta dentro da estrutura do caminho do arquivo ou pasta de destino. Este método encurta o caminho virtual.

Resolução 4:Use um compartilhamento de rede tão profundo quanto a pasta Se as resoluções 1, 2 e 3 não forem convenientes ou não resolverem o problema, crie um compartilhamento de rede tão profundo quanto possível na árvore de pastas e renomeie as pastas acessando o compartilhamento.

Resolução 5:Use uma ferramenta que possa percorrer caminhos profundos

http://support.microsoft.com/kb/320081

informação relacionada