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

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

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

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

Há um.idfarquivo entre todos os outros arquivos. Quero excluir todos os arquivos, exceto o arquivo .idf. O que devo alterar para que o código atual ignore o arquivo? Se não for possível, qualquer novo comando será útil.

Responder1

Para melhorar um pouco sua abordagem:

  • continue forfilescom /d -2a opção para tratar apenas arquivos mais antigos
  • use for %Gwith if /I [%~xG] neq [.idf]para omitir arquivos com .idfextensão
  • dobre tudo %se for executado a partir de um arquivo em lote: %%Gem vez de %Getc.
  • remova @echoassim que 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):

informação relacionada