Пакетный файл DOS для перемещения файлов - PullRequest
0 голосов
/ 11 января 2012

Есть ли способ переместить файлы в каталоге (у нас 1,7 миллиона) в папки на основе даты? Хотелось бы переместить все файлы, созданные с 1-1-2010 по 2-1-2010 в определенную папку

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Вы можете использовать функцию Robocopy. В Windows Vista и Windows 7 он используется по умолчанию, и вы можете загрузить его в Windows XP на веб-сайте Microsoft.

Если ваша Windows 64-битная, она даже перемещает файлы с длиной пути более 256 символов, в отличие от CTRL + C, CTRL + V в проводнике Windows (я не могу понять, почему). Чтобы увидеть справку программы, вы можете написать в командной строке DOS следующее (например, обычно вы не можете записать в корень):

robocopy /? > c:\robocopyhelp.txt

Используйте переключатели "/ MINAGE" для установки минимального возраста файла, который будет скопирован / перемещен, и "/ MAXAGE" для установки максимального возраста.

Я никогда не перемещал файлы раньше и никогда не пытался отфильтровать их по возрасту, но я думаю, что синтаксис должен быть (например, с диска F на G и только файлы 2011 года):

robocopy F:\ G:\ /MOVE /MAXAGE:20110101 /MINAGE:20111231

Плюс другие параметры, описанные в «robocopy /?». Обычно я добавляю «/ R: 0 / W: 0», чтобы он не пытался получить доступ к системным файлам (может помочь, если вы запускаете пакетный файл с правами администратора) 1 миллион раз, при этом время ожидания каждого системного файла составляет 2 секунды не может копировать / перемещать (2 миллиона секунд или 23 дня только для pagefile.sys и hiberfil.sys). А переключатель «/ A-: H» позволяет скрыть скрытые файлы.

Имейте в виду также наличие NTFS-соединений (бесконечный цикл в каталоге C: \ users) и зашифрованных каталогов и используйте соответствующие ключи.

0 голосов
/ 11 января 2012

Это будет не очень хорошо, но вы могли бы использовать forfiles дважды.Один раз для перемещения всех файлов с датой, превышающей 2010-01-01, в папку, а второй - для перемещения всех файлов с датой, превышающей 2010 - ?? - ??(невозможно разобрать формат даты) обратно в исходную папку.

Не очень, определенно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...