Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос файлов с одинаковой частью имени, в папки названные этой частью имени.

Ответить
Настройки темы
CMD/BAT - Перенос файлов с одинаковой частью имени, в папки названные этой частью имени.

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго дня, пробовал найти поиском решение но не вышло, в общем есть 10 000 картинок в папке, почти у в имени файла присутствует имя автора всегда начинается с by_, а заканчиваться может по разному или сразу тип файла или - или _ после которых набор произвольных символов, пробелов вроде не встречал.
Выгледят так:
Golden_Witch_by_burstchicken-32113892fa.jpg
Symphony_of_Destruction_by_dasAoD.jpg
planet_earth_by_microbot23-d3cfd0v.jpg
Feather_Dancer__line_art_by_wayoftheGoo.jpg
The_Homeworld_by_microbot23.jpg
For_the_record_by_wayoftheGoo.jpg
Night__Inventory_by_wayoftheGoo.jpg
Aphrodite_ix_by_wayoftheGoo.jpg
untitled_yellow_by_pitrih.png
kiss_study_1_by_wayoftheGoo_f77rklas.jpg
Night_Kiss_by_sketcher2007.jpg
do_not_breathe____by_Pockypuu.jpg
tribal_dragon_by_yigitkoroglu-d316rs4.jpg

нужно, каждый файл в котором есть имя автора переместить в папку с его именем

Отправлено: 16:11, 25-08-2024

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6567
Благодарности: 1503

Профиль | Отправить PM | Цитировать


Powershell
Код: Выделить весь код
$dir = 'c:\temp\pict'

cd $dir
dir -file |group {$_.basename -replace '.*_by_([a-zA-Z\d]+).*','$1'} |% {
    mkdir $_.name -ErrorAction SilentlyContinue > $null
    mv $_.group $_.name
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:50, 26-08-2024 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Contributor


Сообщения: 2721
Благодарности: 1692

Профиль | Отправить PM | Цитировать


cmd
Код: Выделить весь код
@Echo Off &Cls &SetLocal EnableDelayedExpansion
	Set "FileIn=Z:\Box_In\*_by_*.*"
	Set "BoxOut=Z:\Box_In"
	For %%f In ("%FileIn%") Do (
		Set "Name=%%~nf"
		For /F "delims=._-" %%d In ("!Name:*_by_=!") Do (2>nul Md "%BoxOut%\%%d" &>nul Move "%%f"	"%BoxOut%\%%d\")
	)
Pause
Exit /B
Если батник в папку с файлами и папки создаются здесь же, можно и так
Код: Выделить весь код
@Echo Off &Cls &SetLocal EnableDelayedExpansion
	Set "FileIn=%~dp0*_by_*.*"
	Set "BoxOut=%~dp0"
	For %%f In ("%FileIn%") Do (
		Set "Name=%%~nf"
		For /F "delims=._-" %%d In ("!Name:*_by_=!") Do (2>nul Md "%BoxOut%\%%d" &>nul Move "%%f"	"%BoxOut%\%%d\")
	)
Pause
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:36, 26-08-2024 | #3


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


DJ Mogarych, Спасибо, почти работает он сам себя в папку запихнул и в тестовой папке был батник 123.bat его тоже запихнуло в папку 123
megaloman, Вариант "батник в папке с файлами", то что доктор прописал. Спасибо!

Последний раз редактировалось Shinkiro, 26-08-2024 в 20:56.


Отправлено: 20:38, 26-08-2024 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос файлов с одинаковой частью имени, в папки названные этой частью имени.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Перемещение файлов в папку, названную частью имени этого файла Numufar Скриптовые языки администрирования Windows 5 18-12-2018 12:46
Любой язык - [решено] Скрипт который раскидывает файлы по папкам, с частью имени этих файлов username-qq Скриптовые языки администрирования Windows 6 06-10-2018 18:30
CMD/BAT - Добавление имени папки в имя файлов, которые лежат в этой папке sway38 Скриптовые языки администрирования Windows 15 27-06-2018 05:09
Разное - Синтаксическая ошибка в имени файла, имени папки или метке тома Maestro Deno Microsoft Windows 7 8 05-03-2017 19:21
Доступ - Синтаксическая ошибка в имени файла, имени папки или метке тома Maestro Deno Microsoft Windows 7 1 05-03-2017 16:18




 
Переход