Windows 7 Excluir estrutura de pastas fortemente aninhadas [duplicada]


8

Eu estava executando um script de nó que deu errado e criou uma estrutura de pastas assim:

\myfolder
    \myfolder
    \file.txt
        \myfolder
            \file.txt
                \myfolder
                \file.txt
                    \etc.

Isso está aninhado a uma extensão de mais de 300 vezes, eu estimaria, se não mais.

Não posso delporque é um caminho de arquivo muito longo.

Não posso usar robocopyporque na verdade congela em torno deste ponto:

insira a descrição da imagem aqui

Eu não posso usar FileAssassin, pois é apenas para arquivos aparentemente.

Eu tentei usar o script .bat desta resposta Como faço para excluir uma pasta aninhada profundamente e evitar "Nome do arquivo por muito tempo"? , e ainda está em execução, mas receio que, no nível de recursão, a pasta esteja, mesmo que todas as subpastas tenham sido renomeadas para um caractere, ela ainda terá mais de 260 (ou seja, qual for o limite).

Como removo isso problemdo meu sistema de arquivos?

EDITAR

DeepRemove é bem sucedido! Vitória! 3.421 níveis de recursão. Jeesh! Terei mais cuidado com o nodejs (ou qualquer modificação programática do sistema de arquivos) a partir de agora, esp. quando a recursão está envolvida!


Você tentou excluir a pasta raiz?
and31415 16/02

@ and31415 sim. o caminho do arquivo é muito longo para o Windows lidar com ele próprio.
Aristides

2
Talvez alguém encontre uma solução melhor, mas e a inicialização em um CD do GNU / Linux Live, montando a partição do Windows e apenas rmo diretório problemático? Eu acho que o limite do caminho do arquivo do Linux é muito maior que o do Windows, portanto pode funcionar.

@ André que pode funcionar, mas é provavelmente o meu último recurso.
Aristides

@Aristides Sim, apenas certificando-me. Agora, seria interessante saber o que realmente criou o problema em primeiro lugar.
and31415

Respostas:



1

Para a posteridade, estou compartilhando a solução do SiloSix .

Ele criou um arquivo bat para mover a estrutura da pasta e excluir pequenos pedaços de cada vez. É simples e bonito. (Eu também tinha vários milhares de pastas para lidar.)

Ele trabalhou no meu problema em menos de 2 minutos.

REM https://superuser.com/users/151251/silosix
D:

REM  CD deep into the problem directory...
cd D:\a\calculator.sikuli\calculator.sikuli\calculator.sikuli\calculator.sikuli

REM Move the rest of the problem dir to a temporary parent folder
move /-Y calculator.sikuli D:\b

REM CD to the temp folder
cd D:\b

REM delete the section of problem-dir above
rd /s/q D:\a\calculator.sikuli

REM Move the rest of problem-dir back to origin
move /-Y calculator.sikuli D:\a

REM Call the script until problem directory is gone!
call D:\remdirs2.bat

As tags REM são apenas comentários, elas podem ser deixadas ou retiradas como desejar. (Caso a próxima pessoa a encontrar isso não seja versada em scripts para bat.)


Eu acho que o DeepRemove é uma solução mais fácil, esp. alguém que não conhece bem a linha de comando.
Aristides

2
@Aristides No momento em que me deparei com isso, meu problema de diretório estava resolvido usando o script em lotes, então não pude testar o DeepRemove. Algumas outras ferramentas criadas para resolver o mesmo problema não funcionaram, no entanto. Por isso, achei que publicar novamente o script poderia ser benéfico para quem se deparasse com isso. :)
Squish
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.