0x80070570 강제 삭제

Exclusão rápida de diretórios complexos

Última atualização em 02 / 26 / 2020

Normalmente, a exclusão de diretórios é bastante rápida se eles contêm um número modesto de subdiretórios e arquivos. Mas se os diretórios tiverem estruturas complexas, consistindo em centenas ou milhares de subdiretórios e arquivos, poderá levar alguns minutos ou até horas para excluí-los. A linha de comando, com menos sobrecarga, pode excluir diretórios complexos em uma fração desse tempo, às vezes citada como sendo 20 vezes ou mais rápido do que a opção tradicional do explorador. Este guia mostra como automatizar a exclusão de grandes diretórios usando arquivos em lote ou a linha de comando usando Windows comandos e ferramentas. Uma seção adicional cobre programas de exclusão de GUI freeware que possuem um componente CLI. A ênfase deste guia está nos métodos de exclusão rápida e não nos métodos de exclusão seguros ou permanentes usados ​​para tornar os arquivos irrecuperáveis. Os métodos de exclusão segura são outro tópico e são necessariamente mais lentos, pois envolvem a substituição de arquivos, geralmente usando vários passos.

excluir

O Explorer pode ser extremamente lento ao excluir diretórios, porque calcula o tamanho da pasta, o número de itens na pasta e o tempo estimado de conclusão antes do processamento, além de relatar os itens excluídos, exclusões restantes, exclusões atuais e enquanto monitora e informa sobre quaisquer conflitos durante o processamento. Esses processos ainda estão em vigor mesmo quando a lixeira é esvaziada ou quando arquivos e pastas são excluídos diretamente usando Shift + Del. O uso da linha de comando elimina essa sobrecarga, resultando em um processo de exclusão mais rápido. Lembre-se de que meios mais rápidos em relação ao processo de exclusão padrão, portanto, a exclusão de vários Gigabytes de arquivos e diretórios ainda pode levar uma quantidade significativa de tempo. Por exemplo, testes realizados por um Superusuário O membro constatou que demorou em média 53 minutos para excluir 28.3 GB, consistindo em 1,159,211 arquivos em 146,918 pastas usando o método de linha de comando mais rápido testado (uma combinação dos comandos DEL e RMDIR). Se arquivos e pastas devem ser excluídos regularmente, provavelmente o método mais rápido é salvá-los em uma partição dedicada e, em seguida, formatar essa partição para excluir tudo.

comandos

Embora o comando RMDIR possa remover um diretório e seus arquivos, é significativamente mais lento que o uso dos comandos DEL e RMDIR em um processo de duas etapas. O comando DEL exclui os arquivos e o comando RMDIR exclui a estrutura de diretórios.

del /f/q/s "%folder%" >nul

Atua como uma primeira passagem para excluir arquivos e saídas para nul para evitar a sobrecarga de gravar na tela

rmdir /q/s "%folder%"

2ª passagem que remove a estrutura de diretórios

  • / f - Força a exclusão de arquivos somente leitura
  • / q - modo silencioso, não peça para excluir
  • / s - Incluir subdiretórios

RoboCopy

Outro método para excluir arquivos de pasta é o RoboCopy. Uma pasta de destino é espelhada a partir de um diretório de origem vazio, o que força o RoboCopy a excluir todos os arquivos que não estão no diretório de origem.

O comando principal do RoboCopy para excluir todos os arquivos no diretório de destino:

robocopy "EmptyDir" "DestinationDir" /MIR /ETA

  • / MIR - espelha um diretório
  • / ETA - Tempo estimado

O RoboCopy trabalha com diretórios e conjuntos de arquivos dentro de diretórios, ao contrário de arquivos individuais. Nos arquivos em lote de exemplo usando o RoboCopy, o RMDIR ainda é usado para remover o diretório vazio temporário e o diretório de destino pai, e DEL é usado para excluir arquivos.

Usando arquivos em lote

Arquivos em lote, incluindo os arquivos de exemplo abaixo, podem ser usados ​​na linha de comando (com parâmetros), no diretório de envio, no menu de contexto com o botão direito do mouse ou por arrastar e soltar (o método mais fácil).

Linha de comando

Os arquivos em lote podem ser executados a partir de um Windows prompt de comando com parâmetros ou adicionado ao caminho ambiental por conveniência.

Para executar em um prompt de comando, abra um novo prompt de cmd, navegue até o local do arquivo em lotes e digite seu nome completo ou o caminho completo do arquivo em lote. Certifique-se de adicionar os diretórios e / ou arquivos a serem excluídos como parâmetros. Inclua também aspas em qualquer caminho de arquivo com espaços:

Ex. “C: Arquivos de Programasdelete_file_folder_fast_simple_v2.bat” “C: Pasta ou arquivo a ser excluído”

Separe vários parâmetros com um espaço entre os parâmetros.

Adicionando uma pasta de arquivo em lote ao Windows a variável de ambiente permite que ele esteja disponível em qualquer prompt de cmd sem navegar até o local do arquivo em lote ou digitar seu caminho completo. Para adicionar o caminho de um arquivo em lote ao Windows uso do ambiente:

iniciar–> Painel de controle–> Sistema–> Configurações avançadas do sistema–> Guia Avançado–> Variáveis ​​de ambiente–> Variáveis ​​do sistema–> Caminho–> Editar.

Adicione o caminho, por exemplo, C: caminho para o arquivo em lotes; até o fim (não esqueça os pontos e vírgulas no início e no fim). Pressione OK três vezes.

Clique com o botão direito do mouse em Menu de Contexto

Esta opção permite ao usuário clicar com o botão direito do mouse em uma pasta e selecionar o arquivo em lotes no menu pop-up. As etapas para habilitar isso são:

  1. Pressione o botão WINDOWS KEY + R para abrir a caixa de diálogo Executar
  2. Digite regedit e pressione ENTER
  3. Navegue para HKEY_CLASSES_ROOTDirectoryshell
  4. Clique com o botão direito na chave amarela. Selecione Novo> Chave
  5. Insira um nome: Delete & Fast e pressione ENTER
  6. Clique com o botão direito na pasta Delete & Fast criada e selecione New> Key
  7. Digite "command" e pressione ENTER.
  8. Clique com o botão esquerdo do mouse na chave de comando amarela criada. Clique duas vezes na entrada (Padrão).
  9. No campo Dados do valor, insira o arquivo em lotes a ser usado, por exemplo, cmd / c ”C: caminho todelete_file_folder_fast_simple_v2.bat”% 1 ″ depois pressione OK

Outra maneira de realizar o acima é usar um arquivo reg. Copie o código abaixo, cole-o em um editor de arquivos e salve-o como “Excluir Fast.reg”. Clique duas vezes no arquivo para mesclar seu conteúdo com o registro e o menu do botão direito está pronto para uso.

Windows Editor do Registro versão 5.00 [HKEY_CLASSES_ROOTDirectoryshellDelete & Fastcommand] @ = "cmd / c" C: Caminho todelete_file_folder_fast_simple_v2.bat "% 1"

Enviar para o Diretório

Outra opção é o diretório Enviar para, basta criar um atalho e adicioná-lo ao diretório apropriado:

Para versões mais recentes de Windows, o diretório de envio está localizado em:

C:Users<yourusername>AppDataRoamingMicrosoftWindowsSendTo

Para XP, o local é:

C:Documents and Settings<yourusername>SendTo

Para usar, clique com o botão direito do mouse em um arquivo ou diretório e selecione o arquivo em lotes no menu Enviar para.

Arrastar e soltar

A maneira mais fácil de usar os arquivos em lotes de exemplo é simplesmente arrastar e soltar pastas ou arquivos neles. Nenhum arquivo ou pasta será excluído sem a confirmação do usuário.

Diferenças nos arquivos em lotes de exemplo

delete_files_folders_fast_v2.bat - lista vários arquivos e pastas a serem excluídos, o diretório pai, atributos limitados de pasta / arquivo e informações limitadas sobre os nomes e números de arquivos e pastas excluídos. Também inclui uma saída atrasada, permitindo que as informações de exclusão de arquivos e pastas sejam revisadas antes que a janela seja fechada (padrão 10 segundos).

delete_file_folder_fast_simple_v2.bat - limitado a excluir um arquivo ou uma pasta por vez. Não fornece muita interação ou feedback, exceto para perguntar ao usuário se ele realmente deseja excluir o arquivo ou a pasta exibida. Sai automaticamente após excluir o arquivo ou a pasta.

delete_files_folders_fast_robocopy_v3.bat - essencialmente o mesmo que delete_file_folder_fast_simple_v2.bat exceto que a saída do RoboCopy é exibida durante a execução e após o processamento dos arquivos. O arquivo em lotes é pausado após a execução, permitindo ao usuário visualizar os resultados sem sair automaticamente. Atualizado 01-29-20.

delete_files_folders_fast_robocopy_silent_v3.bat - essencialmente o mesmo que acima, exceto que a saída do RoboCopy NÃO é exibida para execução e processamento mais rápidos. O arquivo em lotes sai automaticamente após um atraso de 10 segundos. Adicionado 01-29-20.

delete_file_folder_fast_simple_robocopy_v2.bat - limitado a excluir um arquivo ou uma pasta de cada vez. Usa o RoboCopy em vez de DEL para excluir o conteúdo da pasta. A saída do RoboCopy é redirecionada para nul para eliminar a saída do comando. Sai automaticamente após excluir o arquivo ou a pasta.

delete_file_folder_fast_byenow_v1.bat - usa o programa de linha de comando byenow para excluir uma pasta e todos os seus arquivos e subdiretórios. Usa as configurações padrão do byenow. O arquivo em lote é interrompido após a conclusão.

delete_file_folder_fast_byenow_ntapi_v1.bat - usa o programa de linha de comando byenow para excluir uma pasta e todos os seus arquivos e subdiretórios. Igual ao arquivo em lote anterior, mas usa a opção –delete-ntapi. O arquivo em lote é interrompido após a conclusão.

Os arquivos em lote podem ser renomeados e funcionarão de forma idêntica.

Arquivos de lote de exemplo usando DEL, RMDIR e RoboCopy

Clique com o botão esquerdo do mouse para visualizar o arquivo na janela atual ou clique com o botão direito do mouse e em "Salvar link como" para fazer o download. Os arquivos em lote são alterados das versões anteriores, pois a opção / S diminui bastante o desempenho ao excluir arquivos individuais. A opção / S ainda é usada, mas apenas para pastas.
Observação: Remova a extensão ".txt" antes de usar.

Os arquivos em lotes abaixo usam apenas os comandos RMDIR e DEL.

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Os arquivos em lote abaixo usam RoboCopy para excluir arquivos de pasta, RMDIR para excluir pastas vazias e DEL para excluir arquivos individuais. Se RoboCopy estiver instalado, mas não incluído no Windows caminho do ambiente, certifique-se de alterar o caminho do RoboCopy para o seu sistema no arquivo em lote (não se esqueça de remover o REM para habilitá-lo). Nenhuma mudança nos arquivos em lote é necessária se o RoboCopy já estiver instalado e incluído no caminho. Para verificar, digite “robocopy: em um prompt de comando. Se o RoboCopy for executado, ele já está instalado e incluído no caminho do ambiente.

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Ferramentas de exclusão de freeware

Estão disponíveis várias ferramentas de exclusão de GUI e arquivo de linha e pasta, mas a maioria se concentra em exclusões seguras e não fornece uma opção para exclusões padrão. Os utilitários de freeware abaixo são capazes de executar exclusões padrão e seguras da GUI e da linha de comando.

Essas ferramentas baseadas em GUI funcionam a partir da linha de comando, através do executável principal, usando executáveis ​​de linha de comando separados. A vantagem de usar essas ferramentas em vez de usar nativo windows comandos como RMDIR e DEL é mais fácil configurar opções de exclusão complexas, como excluir arquivos ou pastas com base na data de modificação ou criação, tamanho ou tipo, além de gravar logs, enviar o processo para segundo plano, definir desligamentos automáticos do sistema, excluir / incluir arquivos e pastas específicos, interromper erros e definir muitas outras opções usando uma única linha de comando.

FastCopy

FastCopy é um utilitário de cópia / backup que também pode executar exclusões seguras padrão e limitadas em arquivos e pastas individuais. Pode ser instalado como um programa regular ou como um aplicativo portátil, selecionando extrair durante a instalação. O executável do programa também aceita comandos da linha de comando.

Arquivos e pastas podem ser soltos e arrastados para a interface para definir os diretórios de origem ou destino. No menu Opções, o programa pode ser configurado para instalar extensões de shell para permitir que FastCopy exclua, copie ou mova arquivos / pastas usando o menu do botão direito em Windows Explorer.

Interface principal do FastCopy

Interface FastCopy

Opções de exclusão do FastCopy

Opções de exclusão do FastCopy

Opções de extensão do FastCopy Shell

Opções de extensão do FastCopy Shell

Linha de comando do FastCopy e arquivo em lote

Uma lista das opções de linha de comando do FastCopy pode ser encontrada página de ajuda online e no arquivo de ajuda do aplicativo. O arquivo em lotes abaixo está configurado para excluir arquivos e pastas usando o recurso de arrastar e soltar com duas opções: (1) NÃO solicite confirmação antes de excluir e desativar o log e (2) Solicite confirmação antes de excluir e ativar o log. O arquivo em lotes é interrompido após a execução. O arquivo em lotes está configurado para usar uma instalação portátil.

A divisão da primeira linha de comando do FastCopy (sem confirmação, sem registro):

FastCopy.exe / cmd = delete / no_confirm_del / log = FALSE / auto_close% *

  • / cmd = delete - comando delete
  • / no_confirm_del - Não confirme antes de excluir
  • / log = FALSE - Desativa informações de operação / erros de gravação no arquivo de log
  • / auto_close - fecha automaticamente após a conclusão da execução, sem erros
  • % * - Todos os arquivos e pastas arrastados e soltos

Arquivo em lote de exemplo para o FastCopy (remova a extensão .txt antes de usar):

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Apagador rápido de pastas Pro

Apagador rápido de pastas Pro é um programa freeware instalado. Ele pode executar exclusões padrão e seguras na linha de comandos ou na interface da GUI. Os executáveis ​​de linha de comando independentes estão localizados na pasta de linha de comando que contém dois executáveis ​​da CLI, uma versão de 32 bits e uma versão de 64 bits.

Este é um utilitário projetado especificamente para excluir diretórios e subpastas e arquivos dentro deles. Ao contrário do FastCopy, não é possível excluir arquivos individuais por nome de arquivo, mas é possível excluir arquivos individuais ou grupos de arquivos com base no tamanho, datas e outros filtros e pode excluir arquivos usando curingas. Embora pastas e arquivos possam ser diretamente arrastados e soltos na interface da GUI para exclusão, os testes revelaram que, quando um arquivo era solto na GUI, o programa também excluía todos os outros arquivos e pastas dentro do mesmo diretório que o arquivo descartado. Não houve problemas com pastas soltas na GUI ou excluídas usando o executável da CLI. O executável da CLI não pode excluir arquivos individuais e gera um erro se um caminho de arquivo individual for usado com o comando delete.

Comparado ao FastCopy, o número de opções de linha de comando é limitado. Por exemplo, não existe nenhuma opção para habilitar ou desabilitar a confirmação antes de excluir um arquivo, então uma opção de confirmação deve ser programada no script de lote usando Windows comandos para obter essa funcionalidade.

Interface do Fast Folder Eraser Pro

Interface do Fast Folder Eraser Pro

Fast Folder Eraser Pro - Opções de exclusão

Fast Folder Eraser Pro - Opções de exclusão

Linha de comando do Fast Folder Eraser Pro e arquivo em lote

O arquivo de ajuda para os executáveis ​​da CLI autônomos está localizado na pasta da linha de comando, junto com dois executáveis, um executável da CLI de 32 bits, FFECmd32.exe e um executável de 64 bits, FFECmd64.exe. O arquivo em lotes abaixo está configurado para arrastar e soltar usando o executável de 32 bits, inclui confirmação antes da exclusão e pausa após a execução. Ao contrário do FastCopy, onde vários arquivos e pastas podem ser processados ​​usando um único comando, o CLI executável no Fast Folder Eraser Pro é capaz de processar apenas uma pasta de singe por vez. Se várias pastas forem arrastadas e soltas no arquivo em lotes, as pastas após a primeira serão ignoradas. Se um arquivo ou vários arquivos forem lançados no arquivo em lotes, os arquivos não serão processados.

A divisão da linha de comando byenow, conforme usada no arquivo em lote:

FFECmd32.exe / caminho% * / r / logfail

  • / path% * - caminho absoluto do diretório para iniciar a exclusão
  • / r - recursar diretórios filho
  • / logfail - registra exclusões de arquivos sem êxito em um arquivo de log

Exemplo de arquivo em lote para o Fast Folder Eraser Pro (remova a extensão .txt antes de usar):

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

byenow Utilitário de Linha de Comando

Tchau é uma ferramenta de linha de comando especializada projetada especificamente para excluir arquivos e diretórios em uma única pasta. Ele usa várias estratégias não encontradas para outras ferramentas de exclusão para otimizar e otimizar o processo de exclusão, como: (1) fornecendo informações essenciais, mas não detalhadas, de processamento, (2) a opção de suprimir a confirmação, (3) usando todos os núcleos de CPU disponíveis por padrão, e (4) a opção de usar o NtDeleteFile API em vez do processo de exclusão padrão (DeleteFile API) para excluir arquivos. A API NtDeleteFile é mais rápida porque requer apenas um único syscall em vez dos três syscalls necessários pela API DeleteFile padrão. O byenow também exibe o tempo necessário para o processo de exclusão após a conclusão. Abaixo está uma lista resumida das opções configuráveis ​​pelo usuário da byenow:

  • visualizar o número de arquivos e pastas a serem excluídos
  • definir o número de threads (usa o mesmo número de threads que os núcleos da CPU por padrão)
  • suprimir confirmação
  • erros de lista
  • exibir progresso em uma única linha
  • exclusão faseada - verifique a pasta primeiro e exclua
  • use a API NtDeleteFile em vez da API DeleteFile padrão

byenow opções

byenow Opções

Agora, no modo de visualização prévia

byenow Visualização

byenow Linha de comando e arquivo em lote

Como o byenow já está otimizado para exclusão de arquivo usando suas configurações padrão e suas opções são configuráveis ​​na linha de comando, apenas um arquivo em lotes básico é necessário para iniciar o programa em uma janela de comando. São fornecidos dois arquivos em lote, um com configurações padrão e outro usando a API NtDeleteFile. Como o byenow é um programa somente de linha de comando, defina o caminho para o byenow nos arquivos em lote.

A divisão da linha de comando byenow (com a opção API NtDeleteFile):

byenow "% ~ 1" - delete-ntapi

  • –Delete-ntapi - use a API NtDeleteFile em vez da API DeleteFile

Arquivos de lote de exemplo para byenow (remova a extensão .txt antes de usar):

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Nota: Existe um arquivo incorporado nesta publicação, visite esta publicação para baixar o arquivo.

Benchmarks de arquivos em lote

Os arquivos em lote foram comparados por meio de benchmarking usando o padrão Windows processo de exclusão como uma linha de base. Nove diretórios de teste idênticos foram criados, cada um composto por 12255 arquivos em 1599 diretórios, e totalizando 1658 MBs. Cada arquivo de lote foi cronometrado usando um cronômetro e / ou usando os tempos registrados onde apropriado para medir quanto tempo eles levaram para excluir o diretório de teste.

Arquivo em lote Resultados (min: segundos)
delete_files_folders_fast_byenow_v1.bat TBD
delete_files_folders_fast_byenow_ntapi_v1.bat TBD
delete_file_folder_fast_simple_robocopy_v2.bat 0:26
delete_files_folders_fast_robocopy_silent_v3.bat 0:31
delete_file_folder_fast_simple_v2.bat 0:32
delete_files_folders_fast_v2.bat 0:34
Fastcopy_delete_file_folders_v1.bat (confirmar) 0:37
Fastcopy_delete_file_folders_v1.bat (sem confirmação) 0:40
FastFolderEraserPro_delete_file_folders.bat 0:44
delete_files_folders_fast_robocopy_v3.bat 0:49
Windows Exclusão padrão para a lixeira * 1:57

* O tempo inclui 0:40 segundos para enviar o diretório de teste para a Lixeira e 1 minuto e 17 segundos para esvaziar a Lixeira (0:40 + 1:17 = 1:57).

Conclusões

A maioria das ferramentas de linha de comando testadas foram mais rápidas do que usar Windows exclusão padrão, especialmente quando o tempo necessário para esvaziar a Lixeira foi incluído. As ferramentas de linha de comando mais rápidas eram quase duas vezes mais rápidas que o Windows processo de exclusão padrão que envia arquivos para a Lixeira, e mais de 4 vezes mais rápido do que Windows quando o tempo necessário para esvaziar a Lixeira foi fatorado. Suprimir a saída e desabilitar o registro ajudou a melhorar o desempenho das ferramentas de linha de comando, mas o fator mais significativo parece ser que todas as ferramentas de linha de comando excluem arquivos diretamente e não use a Lixeira. Os testes sugerem que qualquer programa que exclui arquivos diretamente parecerá automaticamente mais rápido em comparação com todos os Windows processo de exclusão padrão, mesmo quando eles são realmente mais lentos que o tempo Windows leva apenas para enviar arquivos apagados para a Lixeira.

Os diretórios de teste usados ​​não são realmente representativos de uma situação do “mundo real”, pois eram realmente pequenos, e é improvável que a maioria dos usuários use ferramentas de exclusão especializadas para ocasionalmente excluir diretórios com menos de 3-4 GBs. Embora útil como uma “estimativa aproximada”, um cenário de teste mais realista seria testar os vários comandos de arquivo em lote usando uma estrutura de diretório maior e mais complexa de talvez 50 GB ou mais.