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

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

Ответить
Настройки темы
CMD/BAT - [решено] Создание папок на основе имен файлов и перемещение файлов в эти папки

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


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

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


Добрый день.
Есть папка в которую камера скидывает видео в таком формате
_2016Y11M07D18H_00M00S.mp4
_2016Y11M07D18H_01M00S.mp4
и так далее

Прошу помочь создать батник чтобы раскидывать эти файлы по структуре папок вида YYYY\MM\DD
Важное условие: для имен папок нужно использовать имена файлов, а не даты создания этих файлов.

Отправлено: 16:07, 10-12-2016

 

Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off

Set "In=Z:\Box_In"
Set "Mask=_????Y??M??D*.mp4"

Set "Out=Z:\Box_Out"

FOR /F "usebackq tokens=1,2,3 delims=_YMD" %%i IN (`Dir "%In%\%Mask%" /B /A:-D 2^>nul`) DO (
	If Exist "%In%\_%%iY%%jM%%k*.mp4" ( 
		If Not Exist "%Out%\%%i\%%j\%%k" Md "%Out%\%%i\%%j\%%k" 
		Move /Y "%In%\_%%iY%%jM%%k*.mp4" "%Out%\%%i\%%j\%%k\" >nul
	) 
)

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


Последний раз редактировалось megaloman, 10-12-2016 в 21:51.

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

Отправлено: 16:34, 10-12-2016 | #2



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

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


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


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

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


спасибо, то что надо!

Отправлено: 18:00, 10-12-2016 | #3


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


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

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


А можно использовать этот скрип на несколько папок?
Для решения задачи принимаем что Out всегда совпадает с In а Mask всегда одинаковы.

Последний раз редактировалось mezzin, 10-12-2016 в 20:38.


Отправлено: 20:18, 10-12-2016 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off

Set "In="Z:\Box_In" "Z:\Box_Arc" "Z:\dddddddd" "Z:\Tra La La""
Set "Mask=_????Y??M??D*.mp4"

FOR %%d IN (%In%) DO (
	FOR /F "usebackq tokens=1,2,3 delims=_YMD" %%i IN (`Dir "%%~d\%Mask%" /B /A:-D 2^>nul`) DO (
		If Exist "%%~d\_%%iY%%jM%%k*.mp4" ( 
			If Not Exist "%%~d\%%i\%%j\%%k" Md "%%~d\%%i\%%j\%%k" 
			Move /Y "%%~d\_%%iY%%jM%%k*.mp4" "%%~d\%%i\%%j\%%k\" >nul
		) 
	)
)
или, ИМХО, нагляднее
Код: Выделить весь код
@Echo Off

Set "Mask=_????Y??M??D*.mp4"

Call :Trans "Z:\Box_In"
Call :Trans "Z:\Box_Arc"
Call :Trans "Z:\dddddddd"
Call :Trans "Z:\Tra La La"

GoTo :Eof

:Trans

FOR /F "usebackq tokens=1,2,3 delims=_YMD" %%i IN (`Dir "%~1\%Mask%" /B /A:-D 2^>nul`) DO (
	If Exist "%~1\_%%iY%%jM%%k*.mp4" ( 
		If Not Exist "%~1\%%i\%%j\%%k" Md "%~1\%%i\%%j\%%k" 
		Move /Y "%~1\_%%iY%%jM%%k*.mp4" "%~1\%%i\%%j\%%k\" >nul
	) 
)

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


Последний раз редактировалось megaloman, 10-12-2016 в 21:51.

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

Отправлено: 21:11, 10-12-2016 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Создание папок исходя из дат создания файлов и перемещение их в эти папки mezzin Скриптовые языки администрирования Windows 13 25-01-2018 18:38
CMD/BAT - [решено] Создание папок по дате получения файлов и перемещение в них файлов KamikadZZe Скриптовые языки администрирования Windows 1 01-09-2011 14:15
VBS/WSH/JS - Перемещение файлов и папок в разные папки... WalkManX Скриптовые языки администрирования Windows 0 07-08-2011 22:37
[решено] На одном из разделов диска не видно имен файлов и папок. Oleg_SK Microsoft Windows 2000/XP 6 08-06-2007 12:56
Браузер и FTP-сервер не понимают имен файлов и папок на русском Marlboroman Microsoft Windows 2000/XP 1 01-11-2006 00:15




 
Переход