%2C%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%B9%20%D1%84%D0%B0%D0%B9%D0%BB%20.png)
Мой текущий код для удаления всех файлов в папке старше 2 дней:
forfiles /p "C:\Test" /s /m *.* /c "cmd /c Del /F /Q @path" /d 2
Есть один.idffile среди всех других файлов. Я хочу удалить все файлы, кроме одного .idf-файла. Что мне изменить, чтобы текущий код игнорировал файл? Если это невозможно, любая новая команда будет полезна.
решение1
Чтобы немного улучшить ваш подход:
- сохранить
forfiles
с/d -2
переключателем для обработки только старых файлов - используйте
for %G
withif /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
Ресурсы(обязательно к прочтению):
- (справочник команд)Индекс AZ командной строки Windows CMD
- (дополнительные особенности)Синтаксис командной строки оболочки Windows CMD
- (
%~G
и т.д. специальная страница)Аргументы командной строки (параметры)