Windows

Você pode excluir arquivos/diretórios em massa com CMD ou Powershell, mas existem opções mais rápidas

Os leitores ajudam a oferecer suporte ao Windows Report. Quando você faz uma compra usando links em nosso site, podemos lucrar uma percentagem de afiliado.
Ícone de dica de ferramentaÍcone de dica de ferramenta

Leia a página de divulgação de afiliados para desenredar porquê você pode ajudar o Windows Report sem esforço e sem gastar nenhum quantia. Consulte Mais informação

No Windows, existem maneiras de excluir arquivos/diretórios em volume usando todos os tipos de software de terceiros, porquê os que testamos em nossa lista de 2024.

No entanto, o sistema operacional é versátil o suficiente para permitir que os usuários excluam arquivos e diretórios em volume usando comandos CMD ou comandos Powershell para fazer isso. Por exemplo, leste usuário do Reddit sabe disso e desenvolveu dois comandos, um para CMD e outro para Powershell, que fazem o trabalho.

Se você quiser experimentá-los, cá estão eles.

O comando CMD é leste:

del /f /s /q “%USERPROFILE%AppDataLocalTemp*.*” >nul 2>&1

for /d %%x in (“%USERPROFILE%AppDataLocalTemp*.*”) faça @rd /s /q “%%x”

O comando do Powershell é leste:

Get-ChildItem -Path “$env:USERPROFILEAppDataLocalTemp” -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue

Usuário Reddit

No entanto, o usuário se perguntou se existem opções mais rápidas, já que esses comandos não fazem o trabalho rápido o suficiente. Escusado será proferir que outros usuários tinham muito a proferir e reunimos algumas das respostas mais populares. Mas se você estiver curioso sobre todos eles, dê uma olhada no tópico do Reddit.

De longe, a maneira mais rápida de excluir arquivos/pastas em volume é o robocopy, que pode ser executado usando cmd.exe (pode iniciar um ou dois segundos mais rápido, o tempo de realização será o mesmo):

mkdir “%USERPROFILE%empty” robocopy “%USERPROFILE%empty” “%USERPROFILE%AppDataLocalTemp” /mir rmdir “%USERPROFILE%empty”

Ou execute usando powershell.exe ou pwsh.exe, embora não pareça que o PowerShell seja necessário cá:

mkdir “$ENV:USERPROFILEempty” & robocopy “$ENV:USERPROFILEempty” “$ENV:USERPROFILEAppDataLocalTemp” /mir rmdir “$ENV:USERPROFILEempty”

Agora, você pode ter problemas cá devido aos arquivos em uso

Usuário Reddit

No entanto, alguém acrescentou rapidamente que usar o robocopy pode ser perigoso:

Tenha muito zelo com o robocopy usando /mir. Perceptível dia, testemunhei meu parceiro no transgressão espelhando um grande servidor de arquivos de produção em sua novidade lar, em uma programação que estava em realização há algumas semanas. Ele passou para a novidade lar e excluiu a manadeira. Robocopy excluiu toda a produção instantaneamente. Ele ficou branco muito diante dos meus olhos ao perceber o que havia ocorrido. Graças a Deus tínhamos cópias de sombra em realização. A recuperação mais rápida que já testemunhei. Em 5 (ou menos) minutos toda a produção estava de volta. Nunca mais falamos sobre isso. Mas sou muito zeloso com o robocopy e a opção /mir.

Usuário Reddit

Outros também tiveram sucesso na exclusão em volume de arquivos no Windows usando dotnet:

Analisei a exclusão de algumas pastas enormes (arquivos de 12 Gb, 75 milénio, pastas de 7 milénio) de um script há alguns anos e decidi por essa chamada dotnet.

(System.IO.Directory)::Delete( $Folder.Fullname, $true )

É rápido em uma máquina remota, pois não enumera localmente. Não tenho certeza de porquê isso se adapta ao seu caso de uso. Ele exclui a pasta base. Você pode recriá-lo ou ele pode ser criado maquinalmente quando usado. Ou por outra, as pastas temporárias podem ter arquivos abertos, sem saber o que acontece lá.

Usuário Reddit

Outros tiveram outras ideias:

Sem colocar tudo em um scriptblock para Measure-CommandNão sei.

Eu sei que o diretório que você fornece é

$env:TEMP ou %TEMP% 99% das vezes. Esta localizado em %LOCALAPPDATA% ou $env:LOCALAPPDATA.

Eu também sei que você não precisa de get-childitem. Você poderia exclusivamente

Remove-Item "$($env:TEMP)*" -Recurse -Force ou del /f /s /q %TEMP%

Ou por outra, /s cuida de todos os subdiretórios para que você não precise exclusivamente de um comando para fazer a mesma coisa que os comandos do bot e o loop.

Usuário Reddit

E, finalmente, alguém também usou isto:

O script C seria mais rápido

Cd /d “%USERPROFILE%AppDataLocalTemp” rd /s /q .

Isso elimina as enumerações extras do loop for que você possui na versão do prompt de comando. Isso gerará um erro no final porque você não pode excluir a pasta em que está. O prompt de comando sempre será mais rápido que os cmdlets do PowerShell porque você precisa gerar um objeto de registo, pois não há cmdlet nativo que exclusivamente crie um caminho de registo porquê uma string . Leva tempo para obter as informações adicionadas, porquê tamanho do registo, data de geração, etc., e gerar o referido objeto. Você definitivamente verá uma diferença se o número de arquivos estiver na lar dos cinco dígitos ou mais. Eu costumava manter pastas e arquivos que precisavam ser excluídos/arquivados diariamente e que estavam entre 6 e 7 dígitos e essa geralmente era a solução de exclusão mais rápida.

Usuário Reddit

Mais uma vez, certifique-se de verificar o tópico do Reddit para outras respostas, já que a postagem foi feita exclusivamente algumas horas detrás, logo há uma boa chance de que mais usuários contribuam para ela.


Flavius ​​é redactor e produtor de teor de mídia com interesse privado em tecnologia, jogos, mídia, cinema e narrativa. Ele está sempre curioso e pronto para enfrentar tudo o que há de novo no mundo da tecnologia, cobrindo diariamente os produtos da Microsoft. A paixão por jogos e hardware alimenta sua abordagem jornalística, fazendo dele um grande pesquisador e redator de notícias que está sempre pronto para trazer a você o que há de mais moderno!


Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button