|
|
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
Здравствуйте!!! :) У меня очередная проблема и я опять к вам - моим спасителям!!! В общем каджый день формируется файл с одним и тем же именем. Необходимо переименовать файл (к текущему имени добавить дату) и перенести переименованный файл в другую папку все это с помощью bat-файла. Раньше я пользовалась архиватором rar и задавала просто YYDDMM и все, а теперь надо командами без использования rar переименовать файл и переместить в другую папку... очень-очень на вас надеюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 09:28 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
NataRV, а почему вопрос в этот форум? .bat-файл может выглядеть так (считается, что сегодняшняя дата имеет вид 16.02.2007): Код: plaintext 1. 2. 3. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 11:30 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Бенедикт! Спасибо что откликнулись, я потом уже поняла что не в тот форум написала, но можно я еще немного понаглею и спрошу что такое @echo и ну в общем расскажите, пожалуйста что там что обозначает. В другом форуме прислали что можно воспользоваться функцией сopy bukv.doc bukv.doc%date%.doc но дело в том, что в имени в дате появляются точки, а это вызывает ошибку следующей обработки... Заранее благодарна... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 11:36 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
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 (?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 12:02 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
Бенедикт Вы гений!!! столько ума в одном посте!!! я чувствую себя крохотной снежинкой по сравнению с Вами!!! честно. Ну уж если наглеть то до конца (сижу около компа пунцового цвета, стыдно спрашивать, но руки меня не слушают - сам шлепают вопрос). В общем я поняла что CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%% этим как раз присваивается год месяц день, про очистку переменной поняла, и чувствую интуитивно что где-то вот здесь move /Y %1 "%~d2%~p2%~n1% и надо указывать путь к файлу и имя файла, но вот как? Файл bukv.doc из директории E:\Temp\CopyData надо переименовать в 070216bukv.doc можно в ту же дирректорию, вот не могу собразить как.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 13:30 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 15:08 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
Бенедикт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 СПАСИБО ВАМ ПРИОГРОМНЕЙШЕЕ!!! Вы даже не представляете как помогли мне!!! Вы самый умный из умных!!! Самый гениальный из гениальных!!! В общем Вы просто СУПЕР ГЕРОЙ!!! СПАСИБО ВАМ ОГРОМНОЕ!!! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 16:06 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
подскажите как можно также к имени файла прибавить время создания файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 13:32 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
alehanderподскажите как можно также к имени файла прибавить время создания файла? Аналогично, заменив %date% на %time% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 13:52 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
Аналогично, заменив %date% на %time% мне надо и дату и время ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 14:34 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
И что мешает выбрать и то и другое в две переменных окружения, и составить имя файла с использованием обоих? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 15:07 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
A.K.И что мешает выбрать и то и другое в две переменных окружения, и составить имя файла с использованием обоих? Мешает незнание языка на котором пишутся батники. Если знайте как это можно сделать приведите пример, please ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 11:29 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
NataRVРаньше я пользовалась архиватором rarсоздай файлик с расширением vbs вот его текст Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 14:12 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 15:31 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
rar a file.rar" file.doc -ag-yyyymmdd-hhmmss ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2009, 18:48 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
Спасибо! помогло очень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2011, 12:59 |
|
||
|
Добавление даты к имени файла в bat-файле
|
|||
|---|---|---|---|
|
#18+
прошу прощения если не туда, но есть вопросик такого плана: есть в текущей папке файлы с названиями по типу ггггммдд.log так вот мне необходимо присвоить переменной Х последние 2 символа(но как числа) файла - по типу set x="ДД" - как сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2011, 13:14 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34941269&tid=2176387]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
138ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 434ms |

| 0 / 0 |
