Выбор файлов между двумя датами

#batch-file #date

#пакетный файл #Дата

Вопрос:

 @echo off
forfiles /p "C:Documents and SettingsTestDownloads" /d  01/07/2011 /d -15/07/2011 /c "cmd /c echo @file"
pause
  

Здравствуйте,

Я хотел бы выбрать все файлы, измененные между 01/07/11 и 15/07/11 (французский: jj / mm / aaaa или США: дд / мм / гггг). Но параметр «/ d» можно использовать только один раз. Как я могу это сделать?

Спасибо, если вы можете мне помочь. 🙂

Ответ №1:

Это не опция для этой конкретной команды. Вы можете использовать выбор в качестве входных данных для цикла FOR . Добавьте еще один отступ для каждого необходимого вам критерия.

 FOR /F "delims=*" %%A IN ('forfiles /d -05/07/2011') DO (
    FOR /F "delims=*" %%B IN ('forfiles /m %%A /d  05/01/2011') DO (
        ECHO %%B
    )
)
  

Комментарии:

1. Это работает. Что мне нужно изменить, чтобы не печатать несколько «Ошибка: файл не найден …» ? И я должен запустить этот скрипт в папке с файлами 500.000 , и он кажется чрезвычайно медленным. Можно ли заменить второе «для» на «если»? Я думаю, это было бы более оптимизировано.

2. «Чрезвычайно медленный» может означать производительность вашей системы или «Не оптимизирован». Лучше всего было бы использовать язык программирования, такой как Visual Basic или C #, для создания скомпилированного исполняемого файла. Это было бы очень оптимизировано.