Como deletar todos os arquivos que não possuem uma certa string em seu nome

3

Eu vi Excluindo todos os arquivos que não correspondem a um determinado padrão - linha de comando do Windows

No entanto, eu não vi nada sobre como excluir tudo o que não contém uma determinada string dentro de seu nome de arquivo.

Como posso excluir todos os arquivos zip (outros arquivos não devem ser afetados) em uma pasta e suas subpastas que não têm "MS" (diferencia maiúsculas de minúsculas) no nome do arquivo.

Essas letras podem estar ao lado de outras letras (por exemplo, um nome de arquivo "ABCMSABC" deve ser mantido porque tem "MS", mas todos os outros arquivos devem ser excluídos). Vários arquivos terão "MS" neles.

    
por User093203920 16.03.2016 / 01:30

1 resposta

5

Como posso apagar arquivos zip em uma pasta / subpastas que não tenham "MS" em seu nome?

Use o seguinte arquivo em lotes:

@echo off
setlocal disableDelayedExpansion
for /f "usebackq tokens=*" %%i in ('dir /a:-d /b /s *.zip ^| findstr /v "[\][^\]*MS[^\]*$"' ) do (
  echo del /s /q %%i
)
endlocal

Notas:

  • Remova o echo quando estiver satisfeito com o que o arquivo em lote fará.
  • Resposta atualizada conforme comentário por dbenham para permitir diretórios que contenham a string" MS "
  • Resposta atualizada para manipular nomes de arquivos contendo espaços.

Leitura Adicional

por 16.03.2016 / 10:46