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

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

Ответить
Настройки темы
CMD/BAT - [решено] Переименование файлов в каталоге (.avi)

Пользователь


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

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


Доброго времени суток

Нужно все файлы с расширением .avi
привести/переименовать
в следующий вид:
2008-03-07_13.avi
2010-06-28_01.avi
и т. д.
Где 2008-03-07 - <год>.<дата>.<месяц>
создания файлов (когда было снято)
_01 - нумерация файлов в текущий папке

По возможности: добавить рекурсию, но
чтобы в каждом вложенном каталоге,
нумерация файлов начиналась с _01 а не
продолжался общий счет

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

Отправлено: 12:43, 07-05-2015

 

Ветеран


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

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


Код PowerShell:
Код: Выделить весь код
gci '*.avi' -Recurse|%{rni $_ ((Get-Date ($x=(New-Object -ComObject Shell.Application).NameSpace(($y=$_.DirectoryName))).GetDetailsOf($x.ParseName($_.Name),12) -Format 'yyyy-MM-dd')+'_'+$(if($y -ne $z){$i=1};($i++).ToString().PadLeft(2,'0');$z=$y)+'.avi')}
.

Отправлено: 03:34, 08-05-2015 | #11



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

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


Ветеран


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

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


Цитата Georgio:
.GetDetailsOf($x.ParseName($_.Name),12) »
Там не зависит от версии ОС?

Отправлено: 06:32, 08-05-2015 | #12


Ветеран


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

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


Цитата Iska:
Там не зависит от версии ОС? »

Понятия не имею. Я бы действительно рекомендовал устанавливать это число экспериментально, например, для русифицированных версий ОС код PowerShell для этого действия должен выглядеть примерно так:
Код: Выделить весь код
1..40|%{if((New-Object -ComObject Shell.Application).NameSpace((gi Env:SystemDrive).Value).GetDetailsOf('',$_) -eq 'Дата съемки'){$_;break}}
(мой вариант).

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

У меня большое предчувствие, что ТС считает возможным переименовывать файлы по дате съёмки с помощью "чистого" пакетного файла. Если бы речь шла просто о дате создания, то можно было бы попробовать написать код пакетного файла (нечто подобное я уже где-то писал), но не знаю, стоит ли игра свеч.

Последний раз редактировалось Georgio, 08-05-2015 в 18:17. Причина: исправлены опечатки.

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

Отправлено: 13:18, 08-05-2015 | #13


Пользователь


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

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


Цитата Iska:
точно формулировать задачу. »
Iska, а вы что-то другое процитировали? я же первоначально уточнил
Цитата:
создания файлов (когда было снято)
---------------------------
Цитата:
обходит папки, в которых, внутри имени присутствует нестандартные символы,
пример такой папки: "media ♫"
Чёрт с ним ...!
Главное поправить
Цитата Iska:
megaloman, вот только сейчас заметил: файлы переименовывает по дате изменения, а нужно по дате съёмки »
---------------------------
Цитата Georgio:
У меня большое предчувствие, что ТС считает возможным переименовывать файлы по дате съёмки с помощью "чистого" пакетного файла. »
Есть такое, так я и полагал

Отправлено: 19:43, 08-05-2015 | #14


Ветеран


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

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


Цитата dokxpi@vk:
я же первоначально уточнил »
Цитата:
создания файлов (когда было снято)
Это Вы только сейчас жирным шрифтом уточнили. А слова «создания файлов» трактуются достаточно однозначно.

Цитата dokxpi@vk:
Есть такое, так я и полагал »
Это никак не выйдет. Разве что какими-нибудь сторонними утилитами типа ReNamer. Там есть и мета-тэги: ReNamer:Meta Tags - den4b Wiki (но даты съёмки/записи avi там нет), и возрастающая нумерация: ReNamer:Rules:Serialize - den4b Wiki. Кстати сказать, и в свойствах файла Проводника Windows эта информация из *.avi у меня также не отображается (под Windows 7 в данный момент).

Отправлено: 00:14, 09-05-2015 | #15


Пользователь


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

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


Цитата:
Это никак не выйдет. Разве что какими-нибудь сторонними утилитами типа ReNamer.
Нашёл
Total Commander ->Групповое переименование -> shelldetails ( wdx) ->
Код: Выделить весь код
 [=shelldetails.Дата создания мультимедиа.D-M-Y]#0[C]

Последний раз редактировалось dokxpi@vk, 12-06-2015 в 16:05.


Отправлено: 00:44, 21-05-2015 | #16



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Архивирование файлов в каталоге Tonny_Bennet Скриптовые языки администрирования Windows 53 11-01-2015 13:11
CMD/BAT - Создать список файлов в каталоге PolRusPTZ Скриптовые языки администрирования Windows 7 03-12-2014 14:44
CMD/BAT - Переименование файлов в каталоге flower Скриптовые языки администрирования Windows 2 28-11-2013 15:00
VBS/WSH/JS - Мониторинг файлов в каталоге ugol_divana Скриптовые языки администрирования Windows 1 03-08-2013 17:15
Любой язык - [решено] Распределение файлов в каталоге Тишина Скриптовые языки администрирования Windows 2 26-04-2013 17:09




 
Переход