Exclua todos os arquivos da pasta, exceto uma extensão (digamos .idf) usando o arquivo em lote [duplicate]

0

Meu código atual para excluir todos os arquivos em uma pasta com mais de dois dias é:

forfiles /p "C:\Test" /s /m *.* /c "cmd /c Del /F /Q @path" /d 2

Existe um arquivo .idf entre todos os outros arquivos. Desejo excluir todos os arquivos, exceto o arquivo .idf. O que eu mudo para obter o código atual para ignorar o arquivo? Se não for possível, qualquer novo comando será útil.

    
por Nick 05.05.2015 / 16:16

1 resposta

0

Para melhorar um pouco sua abordagem:

  • mantenha o interruptor forfiles com /d -2 para tratar apenas ficheiros antigos
  • use for %G com if /I [%~xG] neq [.idf] para omitir arquivos com .idf extensão
  • dobre todo % se for executado a partir de um arquivo de lote: %%G em vez de %G etc.
  • remover @echo não antes de depurado.

O comando:

forfiles /p "C:\Test" /s /m *.* /c "cmd /c for %G in (@path) do @if /I [%~xG] neq [.idf] @echo del /F /Q %G" /d -2

Recursos (leitura obrigatória):

por 05.05.2015 / 17:18