Как быстро отсортировать файлы по расширению

Sortwinfiles

Сортировать данные можно по множеству критериев — типу, содержимому, размеру, дате и времени создания, пользователю и так далее, и так далее. Например, у вас может возникнуть необходимость отсортировать файлы по расширению. Сделать это можно с помощью штатного поиска Windows: зайти в папку с файлами и ввести в поисковое поле запрос в виде шаблона «.расширение», после чего переместить найденные файлы в подготовленный загодя каталог.

Проводник поиск

Способ приемлем, когда в исходной папке имеются файлы двух или трех типов, если же типов много, то такая ручная сортировка вряд ли покажется вам приятной.

В таких случаях разумнее воспользоваться средствами командной строки, точнее, скриптом, написанным на языке командного интерпретатора CMD. Созданный скрипт идентифицирует расширения файлов в нужной папке, автоматически создаст папки с соответствующими названиями и переместит в них файл в соответствии с их расширениями.

Скачать командный файл BAT вы можете по ссылке disk.yandex.ru/d/1PYZkPHmIJ-7ZQ, а вот так он выглядит «изнутри».

@echo off

for %%a in (".\*") do (
if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" (
if not exist "%%~xa" mkdir "%%~xa" (
move "%%a" "%%~dpa%%~xa\"
)
)
)

Скрипт BAT

Простой цикл без рекурсии, добавление в переменную расширений, создание папок с именем переменной и перемещение в них файлов.

Поместите скрипт в папку с сортируемыми файлами и запустите.

Проводник

Пару секунд — и всё будет сделано.

Все файлы, включая ярлыки, будут распределены по папкам с именами расширениям, нетронутыми останутся только сам скрипт и файлы без расширений.

Распределены по папкам

На папку с именем «(» не обращайте внимания, она создается чисто для красоты, отключить ее создание можно в коде командного файла, убрав символ «(» в пятой строке.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)
Загрузка...

4 комментария

  • А возможно как-то в виндосе поменять порядок сортировки файлов по умолчанию?
    У меня в папке два типа файлов:пдф и эксель. Названия у файлов одинаковые, для примера: А1.pdf, A1.xlsx, A2.pdf, A2.xlsx, A3.pdf, A3.xlsx и т.д. При этом по умолчанию файл с расширением пдф всегда идет первым, а мне нужно, чтобы он шел после файла эксель.

  • Спасибо. Замечательно но хотелось бы, чтобы и из подпопок можно было все файлы отсортировать.

  • Скобочку нужно переместить со строки где mkdir на строку где move. (чтоб не создавался каталог с названием скобка). А в остальном все отлично работает. Спасибо.

    for %%a in (".\*") do (
    if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" (
    if not exist "%%~xa" mkdir "%%~xa"
    (move "%%a" "%%~dpa%%~xa\"
    )
    )
    )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *