Мой текущий код для удаления всех файлов в папке старше 2 дней:

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

Среди всех остальных файлов есть один файл .idf . Я хочу удалить все файлы, кроме одного .idf. Что я могу изменить, чтобы текущий код игнорировал файл? Если это невозможно, любая новая команда будет полезна.

1 ответ1

0

Чтобы немного улучшить свой подход:

  • сохраняйте forfiles с ключом /d -2 для обработки только старых файлов
  • используйте for %G с if /I [%~xG] neq [.idf] чтобы пропустить файлы с расширением .idf
  • удваивает все % если запускается из пакетного файла: %%G вместо %G и т. д.
  • удалить @echo не раньше, чем отладить.

Команда:

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

Ресурсы (требуется чтение):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .