|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поместить каждый файл в одноименную папку. |
|
|
CMD/BAT - [решено] Поместить каждый файл в одноименную папку.
|
Новый участник Сообщения: 18 |
Здравствуйте, помогите пожалуйста в решении следующей проблемы:
В папке находятся файлы First.mp3 Second.mp3 Third.mp3 Fourth.mp3 Необходимо для каждого файла создать папку с именем как у файла и переместить каждый файл внутрь одноименной папки. First\First.mp3 Second\Second.mp3 Third\Third.mp3 Fourth\Fourth.mp3 |
|
Отправлено: 00:41, 12-03-2016 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Если батник запускать в папке, где находятся файлы, то
@echo off FOR /F "usebackq delims=" %%d IN (`Dir "*.mp3" /b /A:-D 2^>nul`) DO ( md "%%~nd" move /Y "%%d" "%%~nd\" ) FOR %f IN (*.mp3) DO md "%~nf" & move /Y "%f" "%~nf\" |
------- Последний раз редактировалось megaloman, 12-03-2016 в 01:13. Отправлено: 00:55, 12-03-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать Спасибо большое. Второй вариант подошел.
|
Отправлено: 01:10, 12-03-2016 | #3 |
Новый участник Сообщения: 5
|
Профиль | Сайт | Отправить PM | Цитировать мне нужно тже самое но только у меня файлы имеют имена:
First_2021-10-22.ts First_2020-01-18.mp4 Third_2016-02-02.flv Third_2019-04-05.avi и т.д. нужно что бы все файлы с именем в начале "First" перенеслись в папку "First", тоесть куча файлов с разными датами в имени слились в одну папку, и расширения у них разные, но в основном видеоформат. |
Отправлено: 20:43, 17-03-2022 | #4 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set "BoxIn=Z:\Box_In" FOR /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D "%BoxIn%\*_20??-??-??.*"`) DO If Exist "%BoxIn%\%%f" ( Set "Name=%%~nf" Call Echo %%Name%%|>nul 2>&1 FindStr/I /R /C:"^.*_20[0-9][0-9]-[0-1][0-9]-[0-3][0-9]$"&& ( Call Set "Name=%%Name:~0,-11%%" Call 2>nul Md "%BoxIn%\%%Name%%" Call >nul Move /Y "%BoxIn%\%%Name%%_20??-??-??.*" "%BoxIn%\%%Name%%\" )) Pause Exit /B То же, чуть проще и быстрее, но менее надёжно
@Echo Off cls Set "BoxIn=Z:\Box_In" FOR /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D "%BoxIn%\*_20??-??-??.*"`) DO If Exist "%BoxIn%\%%f" ( Set "Name=%%~nf" Call Set "Name=%%Name:~0,-11%%" Call 2>nul Md "%BoxIn%\%%Name%%" Call >nul Move /Y "%BoxIn%\%%Name%%_20??-??-??.*" "%BoxIn%\%%Name%%\" ) Pause Exit /B |
|
------- Последний раз редактировалось megaloman, 18-03-2022 в 09:40. Отправлено: 22:26, 17-03-2022 | #5 |
Новый участник Сообщения: 5
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 17:19, 19-03-2022 | #6 |
Новый участник Сообщения: 5
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 19:59, 19-03-2022 | #7 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать athlonix4@twitter, Виноват, Вы должны указать путь папки, где содержатся эти файлы
Вот еще вариант: @Echo Off cls Set "BoxIn=Z:\Box_In" If Not "%~1"=="" Set "BoxIn=%~1" If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1% FOR /F "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D "%BoxIn%\*_20??-??-??.*"`) DO If Exist "%BoxIn%\%%f" ( Set "Name=%%~nf" Call Set "Name=%%Name:~0,-11%%" Call 2>nul Md "%BoxIn%\%%Name%%" Call >nul Move /Y "%BoxIn%\%%Name%%_20??-??-??.*" "%BoxIn%\%%Name%%\" ) Pause Exit /B Можете просто запускать батник, но при этом путь к папке возьмется из батника. Если поместить батник в обрабатываемую папку и запускать оттуда, то: Set "BoxIn=%~dp0" |
------- Отправлено: 21:02, 19-03-2022 | #8 |
Новый участник Сообщения: 5
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
Nikolay_2021-08-26_22-23-36_0001.ts Nikolay_2022-01-21_21-23-25-proxy.ts Nikolay_2022-01-21_21-23-25_deleted.ts как быть с этим? редактировать батник под свой формат, я попытался, но что то пошло не так, или есть универсальный способ? |
|
Отправлено: 21:38, 19-03-2022 | #9 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать athlonix4@twitter, "Nikolay" - как я понимаю, имя произвольное. Оно может содержать знак "_" ? Кстати, этот вопрос относится и к предыдущим файлам.
|
------- Отправлено: 21:57, 19-03-2022 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Заархивировать каждый файл в отдельный архив | Ins_16 | Скриптовые языки администрирования Windows | 25 | 18-11-2023 23:07 | |
CMD/BAT - [решено] Как собрат файлы в папку по 20мб каждый? | muqanna | Скриптовые языки администрирования Windows | 10 | 14-03-2012 07:39 | |
Ошибка - Не удается поместить список сетевых устройств компьютера в папку | fish99 | Microsoft Windows 2000/XP | 1 | 30-08-2010 12:22 | |
[решено] Как упаковать папку в один файл и указать в ней исполняемый (exe) файл? | SashaKl | Хочу все знать | 6 | 22-06-2009 01:11 | |
куда поместить файл | irik | Вебмастеру | 3 | 02-12-2003 19:10 |
|