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

Изменить даты и время создания файла, взяв информацию из имени файла

26.04.2015, 10:39. Показов 31971. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Есть файл "Call@recording@005_20150216113542.mp3" В его имени после "_" идёт дата "20150216" и время "113542" создания файла. Нужен батник, который сможет изменять дату и время создания таких файлов в одной или нескольких папках, взяв дату и время из имени файла.
Помогите, пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.04.2015, 10:39
Ответы с готовыми решениями:

Вывод на экран консоли только имени и даты создания файла
Здравствуйте, необходимо вывести на экран консоли имена и даты создания файлов, содержащих атрибут...

Как изменить дату и время создания файла на текущие?
Как изменить дату и время создания файла на текущие? Пробовал соединить с нулевым, но как такой...

Копирование файла с добавлением текущей даты к имени файла
Просто копирую файл XCOPY D:\BACKUP\base.bak E:\BACKUP\*.* /Y - норм... Мне нужно не заменять...

Добавление текущей даты к имени файла при нестандартном формате вывода даты
Приветствую ! Давно и успешно используется код, который мне когда-то подсказали тут на форуме ...

29
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
27.04.2015, 00:50 2
Лучший ответ Сообщение было отмечено gaganton как решение

Решение

Поместите пакетный файл с кодом
Windows Batch file
1
@powershell "gci '*_[1-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-2][0-9][0-5][0-9][0-5][0-9].mp3' -Recurse|%%{$_.CreationTime=Get-Date ((($x=$_.BaseName[-14..-1])[6,7]+'.'+$x[4,5]+'.'+$x[0..3]+' '+$x[8,9]+':'+$x[10,11]+':'+$x[12,13]) -join '')}"
в папку, в которой находятся файлы, которые нужно обработать (в том числе, и если эти файлы находятся в подпапках любого уровня вложенности), и запустите.
3
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 2
04.09.2015, 08:37 3
Добрый день! Как раз попал в ветку которая мне нужна! У меня похожая ситуация, только мне нужно установить дату фотографиям по их именам. EXIFы отсутствуют! Имена в таком формате: 2011-08-18_inside me-0001, т.е. до знака _ стоит дата через дефисы. Пытался изменить батник приведенный выше, но у меня ничего не сработало Жду вашей помощи!
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
04.09.2015, 12:07 4
Anahored, А, может, у Вас XP, в таком случае надо будет скачать и бросить в system32 powershell, потому что там она, увы, отсутствует.
0
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
15.09.2015, 22:26 5
Цитата Сообщение от Anahored Посмотреть сообщение
Имена в таком формате: 2011-08-18_inside me-0001, т.е. до знака _ стоит дата через дефисы. Пытался изменить батник приведенный выше, но у меня ничего не сработало Жду вашей помощи!


Код пакетного файла:
Windows Batch file
1
@powershell "gci -r|?{!$_.PSIsContainer}|?{$_ -match '^\d{4}(-\d{2}){2}_.*'}|%%{If($(Try{($d=Get-Date ($_.Name -replace '_.*$') -f 'dd.MM.yy')}Catch{})){$_.CreationTime=Get-Date ($d+' '+(Get-Date $_.CreationTime -u %%T))}}"
.

Инструкция к применению пакетного файла с этим кодом аналогична приведённой мной выше.
1
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 2
15.09.2015, 22:44 6
Спасибо огромное! Все получилось!
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 5
26.06.2017, 02:37 7
добрый день. ужас. я тут пытался смотреть эти выражения и голова чуть не поломалась

у меня за многие годы насобиралась куча фотографий и во многих тоже нет EXIF
и изза этого они постоянно множатся, когда копирую в телефоне у себя и знакомых (а такбы я их через комп исправлял после переноса на microsd). (там вообще сумасшествие какое то. все файловые менеджеры которые пробовал на android, все при копировании файлов из одного источника в другой постоянно теряют оригинальную дату файла)

я так по сусекам поскреб и вижу что получился довольно внушительный список разных имен. вижу что много, но можно их помаленьку сделать и выкладывать по номерам которые у меня например, или какой Вам будет удобней и потом уже позже смотрящий будет сам себе выбирать нужный вариант

- можете сделать так чтоб оно не обращало внимания на расширения во всех вариантах
- и чтоб не трогало дату если не нашло её в имени
- возможно ли распознать timestamp и сразу дату файла конвертануть в соответствии?
- можно ли както сделать чтоб эти комманды (выражения) по отдельным именам файлов включить в один батник
или чтоб можно было подключать батники по цепочке (это если они будут конфликтовать), чтоб както автоматизировать под нужды?
а если уж както они там будут конфликтовать, то может в какомто определенном порядке их там расположить?


#01 20121225.jpg
#02 201305302355.jpg
#03 20160229112546.jpeg
#04 2013-08-19-086.jpg
#05 2013-12-30-264.mp4
#06 20140313-0320.jpg
#07 20130710_164647.jpg
#08 20130707_111707_1.jpg
#09 20150217_143633~01.jpg
#10 20120819_171141(0).jpg
#11 20140528_170018_Unnamed Rd.jpg
#12 _20170319_003220.JPG
#13 IMG_20150805_141316_496.jpg
#14 IMG_20150805_210512.jpg
#15 IMG-20140101-WA0003.jpg
#16 VID-20170604-WA0034.mp4
#17 VID_20160721_115925.3gp
#18 C360_2014-10-16-19-26-30-485.jpg
#19 Screenshot_2013-01-18-14-25-04.png
#20 fotos_20140407013120.jpg
#21 10122011107.jpg вот еще видимо какойто американский формат нашел. тут сначала ddmmyyyy(дальше просто порядковый номер)
#22 image200810290008.jpg
#23 image200810290013_2.jpg

#24 photo_1393114136688.jpg есть даже такой зверь. я по одному из EXIF поглядел и там дата создания 2014-02-23 010914. я проверил по онлайн сервису и оно совпало и получилось что из имени файла первые 10 цифр это timestamp (1393114136) а потом просто порядковый номер незнаю чего. ну это уже и не важно



помогите пожалуйста с такими именами. вижу что многовато, но я не один кто страдает от данной проблемы многие годы подряд. а так Вы нам сможете помочь.
Спасибо

p.s. я даже попытался изучать маску для этого файла который в теме "Call@recording@005_20150216113542.mp3", но даже не уверен что она подойдет для моего варианта #20
0
6302 / 2144 / 337
Регистрация: 10.12.2013
Сообщений: 7,387
26.06.2017, 09:40 8
ну чо, интересно..
1) искать в имени тетрады типа 20xx, подразумевая, что это год,
затем догадываться, где относительно года расположены месяц и день
2) если тетрада 20xx не найдена, то попробовать повыкусывать с разных концов по 10 цифр
на предмет интерпретации их как unix-time timestamp и если получится год 20xx, то посчитать за успех.

остаётся найти мотивацию всем этим заниматься
1
Любознательный
6861 / 1995 / 338
Регистрация: 10.03.2016
Сообщений: 4,622
27.06.2017, 18:32 9
telealex, у меня тут есть парочка скриптов на powershell, которые раскидывают файлы по папкам вида YYYY_MM (можно настроить по-другому), в них учитываются даты по exif, а если отсутствуют, то по дате изменения (можно исправить на дату создания), но ... для опубликования этих скриптов необходимо перейти в ветку powershell и там создать топик с осмысленным заголовком. Ну, вот нет желания и времени всё это реализовывать в cmd, да ещё и с помощью сторонних программ, т.к. уже есть рабочие скрипты...
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 5
30.06.2017, 20:51 10
всем спасибо за внимание

Цитата Сообщение от YuS_2 Посмотреть сообщение
перейти в ветку powershell и там создать топик с осмысленным заголовком
Вы написали с осмысленным названием, например такое подойдет - "установка даты create/modificate date файла-картинки по EXIF/file-name masks"?

Если название темы предложенное мною не очень отражает суть задачи, то предложите на Ваш взгляд более благозвучное
0
Любознательный
6861 / 1995 / 338
Регистрация: 10.03.2016
Сообщений: 4,622
01.07.2017, 08:33 11
Цитата Сообщение от telealex Посмотреть сообщение
предложите на Ваш взгляд более благозвучное
Суть задачи не очень мне понятна, т.к. вчитываться в кучу текста, который ещё необходимо осмысливать, нет большого желания...
А предложить могу примерно так:
Помогите упорядочить файлы фотографий и мультимедиа по папкам вида __________.

А в самом сообщении описать по каким критериям и в каком приоритете файлы будут отбираться, например:
1. По данным EXIF, где из даты фото необходимо использовать YYYY_MM или ещё какой-либо формат...
2. Если отсутствуют данные EXIF, использовать дату изменения файла.


Имхо, использовать имена файлов совсем непродуктивно, т.к. алгоритмов именования слишком много, чтобы их все учесть, тем более, что зачастую, помимо даты, в имени присутствует ещё и обычная нумерация снимков...
Опять же, имхо, для упорядочивания файлов из одной большой кучи, по папкам именно вида YYYY_MM, вполне достаточно... и сам использую такой же алгоритм.
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 5
02.07.2017, 02:31 12
Цитата Сообщение от YuS_2 Посмотреть сообщение
Суть задачи не очень мне понятна
мне надобно установить дату файла по имени файла, если этой даты нет в EXIF.
к этим странным именам файлов я не имею никакого отношения. эти имена делает сама аппаратура (фотокамеры,видеокамеры,телефоны,...)

мне не надо перемещать файлы. пускай они остаются там где и были))

ps я согласен что использовать имена файлов не продуктивно, но это единственная возможность установить дату файла если она была утеряна за долгое время при копировании информации с флешек/дисков/и тп.



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

Добавлено через 39 секунд
Цитата Сообщение от YuS_2 Посмотреть сообщение
Суть задачи не очень мне понятна
мне надобно установить дату файла по имени файла, если этой даты нет в EXIF.
к этим странным именам файлов я не имею никакого отношения. эти имена делает сама аппаратура (фотокамеры,видеокамеры,телефоны,...)

мне не надо перемещать файлы. пускай они остаются там где и были))

ps я согласен что использовать имена файлов не продуктивно, но это единственная возможность установить дату файла если она была утеряна за долгое время при копировании информации с флешек/дисков/и тп.



собственно плюс того что даты будут установлены, в том что, в будущем программа отображающая изображения сможет разместить весь массив в хронологическом порядке. что уже будет очень даже удобно. сейчас такие средства набирают популярность. например google foto. в этом сервисе можно сохранять любое количество фотографий и видеоматериала.
и там вся толпа фотографий/видео представлена в куче и ее можно выбирать ползунком по времени хронологически
0
Любознательный
6861 / 1995 / 338
Регистрация: 10.03.2016
Сообщений: 4,622
02.07.2017, 09:46 13
Цитата Сообщение от telealex Посмотреть сообщение
я согласен что использовать имена файлов не продуктивно, но это единственная возможность установить дату файла если она была утеряна за долгое время при копировании информации с флешек/дисков/и тп.
Если использование имен файлов принципиально, то, для работы с таким количеством вариаций именования файлов, как вполне логично, сказали выше:
Цитата Сообщение от volodin661 Посмотреть сообщение
остаётся найти мотивацию всем этим заниматься

Цитата Сообщение от telealex Посмотреть сообщение
единственная возможность установить дату файла
Кстати, по поводу потери даты создания файла - это не совсем так. Если файл не курочили в различных редакторах, то дата изменения файла, чаще всего, соответствует дате фотографирования...
0
0 / 0 / 0
Регистрация: 19.11.2017
Сообщений: 1
20.11.2017, 16:49 14
Добрый день! Задача аналогично описанной в первом сообщении. Есть куча файлов с именами вида VID_20171107_211919.avi
Нужен .bat, который изменить дату и время создания (или изменения) этих файлов в текущей папке, взяв дату и время из имени файла.

Попробовал сделать по аналогии с предложенным вариантом
Windows Batch file
1
@powershell "gci '*_[1-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9].avi' -Recurse|%%{$_.CreationTime=Get-Date ((($x=$_.BaseName[-14..-1])[6,7]+'.'+$x[4,5]+'.'+$x[0..3]+' '+$x[8,9]+':'+$x[10,11]+':'+$x[12,13]) -join '')}"
Получаю сообщение об ошибке:
Get-Date : Не удается привязать параметр "Date". Не удается преобразовать значе
ние "7_.11.0171 21:19:19" в тип "System.DateTime". Ошибка: "Строка не распознан
а как действительное значение DateTime."
строка:1 знак:122
+ gci 'VID_[1-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0
-9].avi' -Recurse|%{$_.CreationTime=Get-Date <<<< ((($x=$_.BaseName[-14..-1])[
6,7]+'.'+$x[4,5]+'.'+$x[0..3]+' '+$x[8,9]+':'+$x[10,11]+':'+$x[12,13]) -join ''
)}
+ CategoryInfo : InvalidArgument: ( [Get-Date], ParameterBindin
gException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerSh
ell.Commands.GetDateCommand

Помогите разобраться, пожалуйста.

Добавлено через 23 часа 56 минут
Затупил спросонья, там же подчёркивание добавилось
Правильный код
Windows Batch file
1
@powershell "gci '*_[1-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9].avi' -Recurse|%%{$_.LastWriteTime=Get-Date ((($x=$_.BaseName[-15..-1])[6,7]+'.'+$x[4,5]+'.'+$x[0..3]+' '+$x[9,10]+':'+$x[11,12]+':'+$x[13,14]) -join '')}"
Вопрос снят
0
0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 3
18.12.2017, 12:41 15
Добрый день!
Прошу помочь и мне с подобной задачей..
Есть множество папок (с вложениями) вида:
2016.01.12 - текст
2012.06-07 - текст
2015.01 - текст
2017 - текст
Необходимо изменить дату создания/модификации/доступа всех папок (!только папок! не трогая файлы) на основании даты из имени этой папки.
В тех случаях где нет месяца или дня просто ставим значение "01".
Время можно для всех одно и то же, скажем 11:11:11
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
18.12.2017, 14:00 16
Цитата Сообщение от lessnik Посмотреть сообщение
изменить дату создания/модификации/доступа
все три даты надо поменять?

некоторые вещи не будут иметь смысла, например:
после уже изменения даты создания, переместив эти папки в новое место - она изменится
откроете какую-то папку (посмотреть что там) после изменения даты модификации - она изменится

каков смысл этой задачи, в имени дата точно сохранится, рассортируйте просто по годам/месяцам
0
0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 3
18.12.2017, 16:07 17
Можно только создания/модификации..
Нужно для отслеживания изменений.
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
18.12.2017, 23:16 18
оба ответа - абсурд
конкретной задачи так и нет
Цитата Сообщение от lessnik Посмотреть сообщение
Нужно для отслеживания изменений
это лишь мелкая деталь
0
0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 3
19.12.2017, 15:05 19
Что даст знание подробностей о том для чего мне это надо при редактирование приведенного здесь скрипта мне сложно понять!
Но раз уж так любопытно..
Есть архив (надеюсь не нужно подробностей о содержимом), который зашифрован с помощью EncFS.
В расшифрованном виде все даты естественно видны, но в зашифрованном все папки так сказать на одно лицо.
Этот зашифрованный архив зеркалится на облако.
Вот при необходимости скачать из это резервной копии и хочется ориентироваться по датам папок, а не тупо качать 600 гигов, чтобы потом расшифровав найти нужную папку занимающую меньше 1% всего объема.
Я уже было начал в ручную менять даты, но быстро надоело.. Нашел данную тему, посмотрел, что решение приведенное близко к тому, что нужно мне. Даже попробовал отредактировать приведенные скрипты, только ничего не вышло!
Еще какие подробности нужны?
0
0 / 0 / 0
Регистрация: 25.05.2017
Сообщений: 9
17.03.2019, 17:04 20
Добрый день! Скачал все фото через google-photos-takeout, но в итоге получилось , что дата создания каждого фото скинулась на сегодня. При этом даты создания этих фото сохранились в названии папок, в которых они лежат. У меня сейчас в корне около 2х тысяч папок вида "2010-03-01" в каждой из них по несколько фото. Прошу помочь , есть ли возможность написать бат файл, который бы изменил дату создания файлов по названию папки, в которой этот файл лежит. Заранее благодарю
0
17.03.2019, 17:04
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2019, 17:04
Помогаю со студенческими работами здесь

Добавление к имени файла даты его последнего изменения
Ребят помогите пожалуйста нужно перед запуском процесса test.exe переименовывать файл chatlog.txt...

Сравнение даты создания файла с заданной датой
Здравствуйте! Подскажите пожалуйста возможно ли решить мою проблему... Мне нужно отобрать файлы из...

Сравнение даты создания файла с текущей датой
Добрый день! Помогите пожалуйста допилить скрипт: for %%i in (&quot;myfile&quot;) do echo %%~ti ...

Переименование файла с подстановкой в название имени компьютера, даты и времени
Здравствуйте! Нужно переименовать файл list.txt в compname_date_time.txt в нижнем регистре


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru