С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 9

Каталогизатор

27.10.2017, 01:28. Показов 1625. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Столкнулся с задачей распределения фото по папкам. Существует несколько тысяч папок, в формате xxxxxxxx_* где Х это цифры(код), а после нижнего подчеркивания случайный текст в котором могут присутствовать пробелы. И так же отдельно папка в которой куча фотографий в том же формате xxxxxxxx_*.jpg есть необходимость из этой 'мусорки' разложить фото по папкам в соответствии с кодом. И если папки с соответствующим кодом не существует то оставить фото на месте, либо переместить в какую либо папку для не отсортированных фото.
Никогда ранее не приходилось сталкиваться с написанием батников.(только мега банальные) После часов гугла удалось примерно выяснить как выцепить код из названия фото, и например на его основе создать папку(ради эксперимента) и на этом все . Как найти необходимую папку куда нужно положить это фото я так и не смог разобрать. Прошу помощи.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.10.2017, 01:28
Ответы с готовыми решениями:

Каталогизатор
у меня множество видео файлов на пк, хочу написать программу вот ее пример, но я не знаю как это сделать.

Каталогизатор книг
Давно у меня назрела эта проблема. Заметил что много раз скачиваю одни и те-же книги, забывая что они у меня есть Иногда приходится...

Каталогизатор фотографий
Всем привет, хочу написать каталогизатор фотографий на C++ Builder... Может кто писал, знает как программу реализовать?

9
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
27.10.2017, 04:59
Цитата Сообщение от russia91 Посмотреть сообщение
несколько тысяч папок
уж не знаю сколько времени cmd на это израсходует, так как для таких объемов это не тот инструмент что нужен
(сохранить лучше в кодировке OEM 866)
пробуйте

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set "d1=Диск:\папка с папками"
set "d2=Диск:\папка с фото"
set "d3=Диск:\nosort"
 
if not exist "%d3%" md "%d3%"
for /f "tokens=1* delims=_" %%a in ('dir /ad/b "%d1%"') do call :# "%%a" "%d1%\%%a_%%b"
for /f "delims=" %%a in ('dir /a-d/b "%d2%\*.jpg"') do move "%d2%\%%a" "%d3%"
pause& exit
 
:#
 for /f "tokens=1* delims=_" %%a in ('dir /a-d/b "%d2%\*.jpg"^|find "%~1"') do move "%d2%\%%a_%%b" "%~2"
exit /b
1
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 9
27.10.2017, 09:13  [ТС]
alpap добрый день. Рассчитываю что данный батник будет раскладывать порядка нескольких десятков фото за раз, 2-3 раза в неделю. Предполагаю что не стоит в данном случае усложнять инструмент.

Спасибо что откликнулись. Заполнил строки 2,3,4 необходимыми путями, однако после запуска все фото перекладываются в папку nosort даже если название фото полностью аналогично папке.
Вот примеры используемых имен фото и папок на которых будет применяться батник:

фото:
01203398_Пигалица Чибис.jpg
01203398_Сорока.jpg
05294755_Азиатский лев.jpg

и папки:
01203398_Птицы
05294755_Дикие животные
0
 Аватар для volodin661
6671 / 2263 / 346
Регистрация: 10.12.2013
Сообщений: 7,826
27.10.2017, 09:44
Цитата Сообщение от russia91 Посмотреть сообщение
Предполагаю что не стоит в данном случае усложнять инструмент.
Беспокоиться не о чем, cmd - это не инструмент от слова совсем.

Добавлено через 6 минут
А чем не устроили уже имеющиеся в этом мире программы, относящиеся к Photo Manager Software ?
0
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 9
27.10.2017, 10:05  [ТС]
А чем не устроили уже имеющиеся в этом мире программы, относящиеся к Photo Manager Software ?
Расчитываю не использовать дополнительное ПО навешанное лишними функциями, для выполнения узкой задачи.
Есть возможность посодействовать в связи с чем все файлы складываются в одну папку?
0
 Аватар для volodin661
6671 / 2263 / 346
Регистрация: 10.12.2013
Сообщений: 7,826
27.10.2017, 10:57
Цитата Сообщение от russia91 Посмотреть сообщение
Есть возможность посодействовать в связи с чем все файлы складываются в одну папку?
бесплатным советом или готовым решением ?

Цитата Сообщение от russia91 Посмотреть сообщение
РасСчитываю не использовать дополнительное ПО навешанное лишними функциями, для выполнения узкой задачи.
если ПО бесплатно и делает всё, что требуется, то не всё ли равно, сколько там внутри функционала ?

В любом случае опираться надо на сегодняшний powershell, а не на верхне-палеолитский cmd.

Добавлено через 4 минуты
И в любом случае тебе надо прислать кусочек скана твоих папок с 'jpg'-файлами и
конкретно показать во что они должны превратиться.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
27.10.2017, 12:43
russia91,
для вашего случая это не рекомендация, а жесткое условие
Цитата Сообщение от alpap Посмотреть сообщение
(сохранить лучше в кодировке OEM 866)
Добавлено через 1 минуту
есть вывод файлов?
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set "d1=Диск:\папка с папками"
set "d2=Диск:\папка с фото"
set "d3=Диск:\nosort"
 
:: if not exist "%d3%" md "%d3%"
for /f "tokens=1* delims=_" %%a in ('dir /ad/b "%d1%"') do call :# "%%a" "%d1%\%%a_%%b"
:: for /f "delims=" %%a in ('dir /a-d/b "%d2%\*.jpg"') do move "%d2%\%%a" "%d3%"
pause& exit
 
:#
 for /f "tokens=1* delims=_" %%a in ('dir /a-d/b "%d2%\*.jpg"^|find "%~1"') do echo "%d2%\%%a_%%b"
exit /b
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
27.10.2017, 13:05
Вместо ....\*.txt написать свой путь к папке с фотографиями\*.jpg.

Вместо "%userprofile%\desktop\Batch\%%c" написать свой путь до папки где лежат папки:куда перемещаем\%%с

Вместо "%userprofile%\desktop\Batch\papka\%%a_% %b" написать путь папки где лежат фото\%%а_%%b

Не отсортированные фотографии остаются в той же папке где были.


Windows Batch file
1
2
3
4
5
6
7
@echo off 
for /f "tokens=1,2 delims=_" %%a in ('dir /a:-d /b "%userprofile%\desktop\batch\papka\*.txt"') do (
for /f "tokens=*" %%c in ('dir /a:d /b "%userprofile%\desktop\Batch"^|findstr "%%a"') do (
move "%userprofile%\desktop\Batch\papka\%%a_%%b" "%userprofile%\desktop\Batch\%%c"
)
)
pause
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
27.10.2017, 13:12
Лучший ответ Сообщение было отмечено russia91 как решение

Решение

russia91,
код можно и так записать, разницы нет, но сохранить в кодировке 866 - обязательно
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
set "d1=Диск:\папка с папками"
set "d2=Диск:\папка с фото"
set "d3=Диск:\nosort"
set "exp=jpg"
 
if not exist "%d3%" md "%d3%"
for /f "tokens=1* delims=_" %%a in ('dir /ad/b "%d1%"') do call :# "%%a" "%d1%\%%a_%%b"
for /f "delims=" %%a in ('dir /a-d/b "%d2%\*.%exp%"') do move "%d2%\%%a" "%d3%"
pause& exit
 
:#
 for /f "tokens=1* delims=_" %%a in ('dir /a-d/b "%d2%\*.%exp%"') do if exist "%d2%\%~1_%%b" move "%d2%\%~1_%%b" "%~2"
exit /b
1
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 9
27.10.2017, 14:58  [ТС]
Огромное вам спасибо, работает как часы. Очень выручили меня.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2017, 14:58
Помогаю со студенческими работами здесь

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

Наставничество\каталогизатор
Добрый день, форумчане! Изучаю язык c#, читаю "Герберт Шилдт - Полный справочник по С#", немного шарюсь в библиотеке майкрософта....

Каталогизатор исходников
Даже не знаю, где тему создать, пусть будет здесь :) Вопрос такого плана: скопилась неимоверная куча всевозможных микропроектов,...

Ищу программу каталогизатор видеофильмов
Подскажите программу каталогизатор видеофильмов, где они представлены со скриншотами и описанием сюжета (если можно).Желательно с...

Каталогизатор дискет и компакт - дисков
Добрый день! В задании нужно написать программу каталогизатор дискет и компакт - дисков, возможно это сделать в PascalABC.NET или в какой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru