![]() |
Изменение даты в названии файла/папки
Здравствуйте, есть батник добавляющий дату в начало файла/папки:
Код:
@echo off Код:
@echo off 1. При добавлении: если обнаружена дата в названии файла/папки, она заменялась на текущую, а не добавлялась? 2. При копировании: если обнаружена дата, копировалось с текущей датой, а не добавлялась дата к существующей? |
Для начала — сменить пакетные файлы на что-либо более вменяемое, где есть нормальные регулярные выражения и работа с типом ДатаВремя, например, WSH/PoSH.
|
Sta1917, один батник для всего
Код:
@Echo Off |
Цитата:
Цитата:
Можно ли сделать копирование с добавлением горячей клавиши (например Shift)? Корректно работает только: Код:
%CurDate:~0,8% Код:
%date:~6,4%.%date:~3,2%.%date:~0,2% Код:
%CurDate:~2,6% |
Цитата:
batnik.bat "Z:\тра ля ля\оба на.ух" batnik.bat "Z:\тра ля ля\20011231 ой ё.mp3" сегодня получим "Z:\тра ля ля\20211123 оба на.ух" "Z:\тра ля ля\20211123 ой ё.mp3" Цитата:
Цитата:
Дату беру из WMIC (ГГГГММДДччммсс) в CurDate и этот формат не зависит от формата даты, как у Вас настроено в системе. CurDate=%CurDate:~0,8% выдаёт ГГГГММДД Не понимаю, что Вас в этом не устраивает. Хотите использовать Date - не смею ограничивать Вашу свободу :) В Вашем примере могу предположить, что Date выдаёт ДД.ММ.ГГГГ, соответственно Set "CurDate=%Date:~6,4%%Date:~3,2%%Date:~0,2%" Виноват! Не вник в Ваш код, а Вы не озвучили, Вам хочется формат даты в именах ГГГГ.ММ.ДД,
а я сделал для ГГГГММДД Исправил Код:
@Echo Off |
Прошу прощения за долгий ответ.
Ув. megaloman я спутал теплое с мягким, предполагая что смогу разнести Ваше решение на два скрипта. При выделении и вызове контекстного меню по правой кнопке мыши появляются два пункта, они разные, в зависимости от того файл это или папка. 1. При выделении файла и вызове контестного меню по правой кнопке мыши настроены два пункта: а) добавить дату в название rename_date.cmd
Код:
set CURDATE=%date:~6,4%.%date:~3,2%.%date:~0,2% б) копировать с датой copy_date.cmd
Код:
set CURDATE=%date:~6,4%.%date:~3,2%.%date:~0,2% 2. При выделении папки и вызове контестного меню по правой кнопке мыши настроены два пункта: а) добавить дату к папке add_date_to_name_folder.cmd
Код:
set CURDATE=%date:~6,4%.%date:~3,2%.%date:~0,2% б) копировать папку с датой copy_and_add_date_to_name_folder.cmd
Код:
set CURDATE=%date:~6,4%.%date:~3,2%.%date:~0,2% Соответственно вопросы те же, как сделать: 1. При добавлении: если обнаружена дата в названии файла/папки, она заменялась на текущую, а не добавлялась? 2. При копировании: если обнаружена дата, копировалось с текущей датой, а не добавлялась дата к существующей? |
Цитата:
Цитата:
Цитата:
Ранее не размещал, решил, что не интересно. Вы молчали.
Вот вариант, который на входе понимает файл/папку с датой в начале названия с произвольными разделителями или без оного, и вставляет дату с нужным Вам разделителем. Код:
@Echo Off |
Цитата:
Цитата:
Два аргумента... в найденном примере так было, у меня заработало. В ком.строке отображается: ren "C:\Users\User\Folder" "2021.12.08 Folder" Передается один аргумент - путь до файла/папки. В сообщении со скриптами добавил их названия, ниже reg файлы для их вызова. Reg файл с пунктами меню по добавлению даты к папке и копированию папки с датой
Код:
Windows Registry Editor Version 5.00 Reg файл с пунктами меню по добавлению даты к файлу и копированию файла с датой
Код:
Windows Registry Editor Version 5.00 Ваш скрипт из последнего сообщения изменяет дату, но если дата уже была текущей - добавляет её еще раз. Должно получиться две функции (вызывать буду через контекстное меню по правой кнопке мыши): 1 Добавить/изменить дату у файла/папки на текущую. 2 Скопировать файл/папку и добавить/изменить дату на текущую. |
Цитата:
|
Цитата:
Можно сделать чтобы дата с вставлялась/менялась в конце имени файла/папки перед расширением (с пробелом между названием и датой) + три варианта текста после даты (Зам, Ответ, Запрос)? Могут быть варианты файлов/папок (расширения для примера): Имя файла 2022.03.28.docx Имя файла 2022.03.28 Зам.xls Имя файла 2022.03.28 Ответ.txt Имя файла 2022.03.28 Запрос |
Sta1917, Заново пытался понять постановку. Времени прошло ...
Вот код. Внизу комментарий.
Код:
@Echo Off |
Ув. megaloman, Если у папки была дата она не заменяется. Если у файла уже есть дата скрипт добавляет новую.
Я правильно понял, что сложно реализовать добавление после даты переменной. Их выбор не нужен - сделаю несколько вариантов. |
Sta1917,
Вот вариант с запросом. Описание работы внизу кода.
Код:
@Echo Off 20[0-4][0-9][0-1][0-9][0-3][0-9] 20[0-4][0-9][^0-9][0-1][0-9][^0-9][0-3][0-9] |
Время: 23:23. |
Время: 23:23.
© OSzone.net 2001-