
Мне необходимо извлечь определенные файлы (только несколько расширений) с USB-накопителя, содержащего более 2 миллионов файлов (во всех возможных форматах и вложенных в несколько уровней подпапок).
Может ли кто-нибудь порекомендовать мне хорошую утилиту для решения этой чрезвычайно трудоемкой задачи?
Идеальный сценарий:Я задаю параметры (фактические расширения, которые мне действительно нужны), запускаю инструмент и на следующее утро нахожу на своем USB HDD только несколько папок (названных как-то вроде "doc & docx", "xls & xlsx", "pdf", "zip"... и т. д.), которые содержат мои файлы... Больше ничего, никаких пустых папок и никаких других файлов, кроме тех, которые имеют указанные мной расширения. Возможные конфликты имен файлов можно решить с помощью добавления прогрессивного номера (или пользовательского текста)... Регистрация ошибок могла бы быть плюсом (поскольку у меня есть точно такая же копия на втором HDD, из которой я мог бы в конечном итоге "выдернуть" некоторые случайно удаленные файлы/папки). Я разберусь с дубликатами на более позднем этапе, но если этот "чудо-инструмент" мог бы надежно это делать, я бы, очевидно, не возражал ;)
Спасибо за любые творческие предложения.
решение1
Спасибо за предложение, но я пришел к выводу, что решу эту проблему с помощью пакетного скрипта... Я собрал его, и он выполняет работу так, как мне нужно. Я снова был поражен тем фактом, что команды пакетного файла могут быть довольно мощными/полезными!
Простой скрипт, созданный в Блокноте, теперь выполняет работу без загрузки/установки чего-либо и без участия Проводника Windows, который явно не может обрабатывать папки, содержащие слишком много файлов.
Иногда самое простое решение действительно является лучшим!
_________________________________________ РЕДАКТИРОВАТЬ:
Как я уже говорил в части, посвященной предварительному редактированию, скрипт чрезвычайно прост, и поскольку это очень индивидуальная операция (не столько скрипт, сколько использованная мной процедура позволила мне добиться желаемого за гораздо меньшее время), я сомневаюсь, что другой пользователь найдет его работоспособным «как есть», но в надежде, что кто-то еще найдет полезным то, что я сделал, для быстрого перемещения (только) нескольких тысяч нужных файлов из очень большой группы файлов, накопленных за годы на внешнем жестком диске, я написал памятку, чтобы указать общее направление, а затем тот, кто может наткнуться на этот вопрос и ответ, должен будет адаптировать мой метод к своим потребностям.
Поскольку данные, которые мне нужно было извлечь с жесткого диска, были довольно конфиденциальными (и ценными для меня), я намеренно хотел проследить каждый шаг и создал для этого отдельные скрипты для каждой группы расширений (я также намеренно не отключал @echo, чтобы увидеть, что именно перемещается)... Очевидно, что ту же процедуру можно запустить и (полу)автоматически.
Ну вот:
1) Убедитесь, что раздел внешнего жесткого диска, с которого будут собираться файлы, имеет букву «Y» (в данном конкретном сценарии использовалась именно эта буква, но, очевидно, можно использовать любую другую доступную букву).
2) В «Y» поместите все папки (из которых будут собираться файлы) в одну папку с именем «- All» (для этого конкретного скрипта... можно использовать любое другое имя).
3) Используйте замечательную бесплатную программу Suction (чтобы найти ее, введите в Google "suction dr nathan") и Suction из папки "- All", чтобы переместить все файлы на 1-й уровень, а также переименовать все файлы с одинаковыми именами. (ПРИМЕЧАНИЕ: я намеренно не использовал доступную опцию "Удалить дубликаты", чтобы ускорить процесс)
4) Выполните команду «Создать папки в корне (диск Y).bat», чтобы создать все необходимые папки для размещения файлов (с сортировкой по расширению). Что-то вроде этого (настройте по мере необходимости):
mkdir "Y:\ALL Archive files"
mkdir "Y:\All Excel files"
mkdir "Y:\All PowerPoint files"
mkdir "Y:\All Word files"
5) По мере необходимости выполните один за другим другие пакетные скрипты*, чтобы переместить необходимые файлы в указанные места назначения... Что-то вроде этого (настройте по мере необходимости):
move /-y "Y:\- All\*.zip" "Y:\ALL Archive files"
move /-y "Y:\- All\*.rar" "Y:\ALL Archive files"
move /-y "Y:\- All\*.xls" "Y:\All Excel files"
move /-y "Y:\- All\*.xlsx" "Y:\All Excel files"
move /-y "Y:\- All\*.pps" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.ppsx" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.ppt" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.pptx" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.doc" "Y:\All Word files"
move /-y "Y:\- All\*.docx" "Y:\All Word files"
move /-y "Y:\- All\*.rtf" "Y:\All Word files"
6) Используйте ваш любимый поисковик (я использовал Everything), чтобы проверить, остались ли какие-либо файлы с указанными расширениями в папке "- All" (не знаю, почему 2 или 3 файла действительно остались... Необъяснимо! В любом случае, я переместил их вручную).
7) Запустите ваш любимый поисковик дубликатов, чтобы избавиться от возможных дубликатов.
8) Удалите все ненужные файлы, которые могли оказаться «посередине» (я нашел кучу файлов, которые мне не нужно было сохранять, поэтому я удалил их на этом этапе)
9) Переименуйте/объедините папки хостинга в корне «Y» (если применимо)
10) Удалите папку «- All», как только это станет безопасно (я трижды проверил, что все, что там осталось, действительно подлежит удалению)
*(при необходимости скомпилируйте новые скрипты для других расширений, а также необходимые папки хостинга в корне "Y")