powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Добавление даты к имени файла в bat-файле
17 сообщений из 17, страница 1 из 1
Добавление даты к имени файла в bat-файле
    #34335495
NataRV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!!! :)
У меня очередная проблема и я опять к вам - моим спасителям!!!
В общем каджый день формируется файл с одним и тем же именем. Необходимо переименовать файл (к текущему имени добавить дату) и перенести переименованный файл в другую папку все это с помощью bat-файла.
Раньше я пользовалась архиватором rar и задавала просто YYDDMM и все, а теперь надо командами без использования rar переименовать файл и переместить в другую папку...
очень-очень на вас надеюсь...
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34335893
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NataRV,
а почему вопрос в этот форум?
.bat-файл может выглядеть так (считается, что сегодняшняя дата имеет вид 16.02.2007):
Код: plaintext
1.
2.
3.
@echo off
set CURDATE=%DATE%
move /Y % 1  "%~d2%~p2%~n1%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%%~x1"
set CURDATE=
Вызов:
Код: plaintext
имя.bat c:\temp\x.rar d:\archives\
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34335925
NataRV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Бенедикт!
Спасибо что откликнулись, я потом уже поняла что не в тот форум написала, но можно я еще немного понаглею и спрошу что такое @echo и ну в общем расскажите, пожалуйста что там что обозначает.
В другом форуме прислали что можно воспользоваться функцией
сopy bukv.doc bukv.doc%date%.doc
но дело в том, что в имени в дате появляются точки, а это вызывает ошибку следующей обработки...
Заранее благодарна...
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34336015
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NataRV,
Вам ответили правильно по сути, но небрежно. У меня то же самое по сути, но почище.
@ вначале строки означает, что при её выполнении она не будет выводится на экран.
echo off означает, что последующие строки при выполнении не будут выводится на экран.
set CURDATE=%DATE% - присвоение переменной окружения значения текущей даты. Сделано для того, чтобы избежать крайне маловероятного случая выполнения команды в полночь, в момент смены дат, поскольку к ней дальше обращаемся трижды.
%~d2 - имя диска из второго аргумента вызова .bat-ника
%~p2 - путь из второго аргумента
%~n1 - имя файла из первого аргумента
%CURDATE:~8,2% - 2 символа из даты, начиная с 8-го (нумерация начинается с 0), т.е. две последние цифры года
%CURDATE:~3,2% - месяц
%CURDATE:~0,2% - день
%~x1 - расширение файла из первого аргумента
кавычки - чтобы избежать потенциальных проблем с путями, содержащими пробелы.
move /Y - перемещение файла, подавление запроса на перезапись существующего.
set CURDATE= - очистка переменной.

Читать:
set /?
move /?
Урок bat-аники

Недостаток: привязка к формату даты.

Способ преодоления недостатка: использовать вместо bat vbs (?)
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34336413
NataRV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт Вы гений!!!
столько ума в одном посте!!! я чувствую себя крохотной снежинкой по сравнению с Вами!!! честно.
Ну уж если наглеть то до конца (сижу около компа пунцового цвета, стыдно спрашивать, но руки меня не слушают - сам шлепают вопрос). В общем я поняла что CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%% этим как раз присваивается год месяц день, про очистку переменной поняла, и чувствую интуитивно что где-то вот здесь move /Y %1 "%~d2%~p2%~n1% и надо указывать путь к файлу и имя файла, но вот как?
Файл bukv.doc из директории E:\Temp\CopyData надо переименовать в 070216bukv.doc можно в ту же дирректорию, вот не могу собразить как....
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34336785
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NataRV,
Ну, лиса... Был бы сыр во рту, выронил.

В том варианте, что есть, надо вызывать .bat-ник с соответствующими параметрами, т.е.:
имя.bat E:\Temp\CopyData\bukv.doc путь_куда_переносить\

Если хотите получить дату в начале нового имени, %CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2% надо поменять местами с %~n1.

Вызов .bat-файла:
имя.bat E:\Temp\CopyData\bukv.doc D:\Archives\ и неявный аргумент - дата: 16.02.2007

Во что развернётся переделанный вызов команды move /Y %1 "%~d2%~p2%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2% %~n1%~x1 " :

move /Y E:\Temp\CopyData\bukv.doc "D:\Archives\070216 bukv.doc "

Если же название файла и пути известны заранее, и нет нужды передавать их в .bat как аргументы, то можно прописать составные части явно:
move /Y E:\Temp\CopyData\bukv.doc D:\Archives\%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%bukv.doc
или
copy /Y E:\Temp\CopyData\bukv.doc D:\Archives\%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%bukv.doc
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34337038
NataRV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктNataRV,
Ну, лиса... Был бы сыр во рту, выронил.

В том варианте, что есть, надо вызывать .bat-ник с соответствующими параметрами, т.е.:
имя.bat E:\Temp\CopyData\bukv.doc путь_куда_переносить\

Если хотите получить дату в начале нового имени, %CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2% надо поменять местами с %~n1.

Вызов .bat-файла:
имя.bat E:\Temp\CopyData\bukv.doc D:\Archives\ и неявный аргумент - дата: 16.02.2007

Во что развернётся переделанный вызов команды move /Y %1 "%~d2%~p2%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2% %~n1%~x1 " :

move /Y E:\Temp\CopyData\bukv.doc "D:\Archives\070216 bukv.doc "

Если же название файла и пути известны заранее, и нет нужды передавать их в .bat как аргументы, то можно прописать составные части явно:
move /Y E:\Temp\CopyData\bukv.doc D:\Archives\%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%bukv.doc
или
copy /Y E:\Temp\CopyData\bukv.doc D:\Archives\%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%bukv.doc


СПАСИБО ВАМ ПРИОГРОМНЕЙШЕЕ!!! Вы даже не представляете как помогли мне!!! Вы самый умный из умных!!! Самый гениальный из гениальных!!! В общем Вы просто СУПЕР ГЕРОЙ!!! СПАСИБО ВАМ ОГРОМНОЕ!!! :)
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34935165
alehander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите как можно также к имени файла прибавить время создания файла?
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34935262
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alehanderподскажите как можно также к имени файла прибавить время создания файла?
Аналогично, заменив %date% на %time%
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34935416
alehander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналогично, заменив %date% на %time%
мне надо и дату и время
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34935620
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что мешает выбрать и то и другое в две переменных окружения, и составить имя файла с использованием обоих?
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34941269
alehander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A.K.И что мешает выбрать и то и другое в две переменных окружения, и составить имя файла с использованием обоих?
Мешает незнание языка на котором пишутся батники.
Если знайте как это можно сделать приведите пример, please
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34942104
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NataRVРаньше я пользовалась архиватором rarсоздай файлик с расширением vbs
вот его текст
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
dim d,m,y
d = day( date() )
m = month(date())
y = year(date())
if d <  10  then
   d = "0" & d
end if
if m <  10  then
   m = "0" & m
end if

s = d & "_" & m & "_" & y

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "winrar.exe a -r -x@exclude.lst " & " C:\ARXIV" & s & ".rar @include.lst"
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #34942440
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМешает незнание языка на котором пишутся батники.

Язык
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Добавление даты к имени файла в bat-файле
    #36114294
drwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rar a file.rar" file.doc -ag-yyyymmdd-hhmmss
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Добавление даты к имени файла в bat-файле
    #37180859
iBee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! помогло очень
...
Рейтинг: 0 / 0
Добавление даты к имени файла в bat-файле
    #37484988
psangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошу прощения если не туда, но есть вопросик такого плана:
есть в текущей папке файлы с названиями по типу ггггммдд.log так вот мне необходимо присвоить переменной Х последние 2 символа(но как числа) файла - по типу set x="ДД" - как сделать?
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Добавление даты к имени файла в bat-файле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]