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

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

Ответить
Настройки темы
CMD/BAT - [решено] Добавление текущей даты в начало имени файла

Новый участник


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

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


Изменения
Автор: Orlov_Pyotr
Дата: 27-02-2013
Добрый день!

Как при помощи bat файла сделать такое:
В текущей директории добавить текущую дату (вида YYYYMMDD) к началу имени файла, с отбивкой пробелом?

Например: oszone.txt -> 20130227 oszone.txt

Отправлено: 10:06, 27-02-2013

 

Ветеран


Contributor


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

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


Если в системе дата отображается как дд.мм.гггг то

ren oszone.txt "%Date:~6,4%%Date:~3,2%%Date:~0,2% oszone.txt"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 10:16, 27-02-2013 | #2



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

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


Новый участник


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

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


Спасибо за ответ!

С датой понял, а вот с именем файла как? Я имя для примера написал, они во всех файлах разные (сотни файлов) и их надо сохранить. Дата в начало просто добавляется.

Если я в тупую меняю на вот такой вид: ren *.* "%Date:~6,4%%Date:~3,2%%Date:~0,2% *.*", то он отъедает первые 7 символов в начале имени файла.

Отправлено: 10:24, 27-02-2013 | #3


Ветеран


Contributor


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

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


Orlov_Pyotr, Как задан вопрос, так написан ответ
Код: Выделить весь код
@Echo Off

Set Where=D:\У попа была собака\Поп ее любил

FOR %%f IN ("%Where%\*.*") DO ren "%%f" "%Date:~6,4%%Date:~3,2%%Date:~0,2% %%~nxf"
Или если батник в той же папке и она текущая
Код: Выделить весь код
@Echo Off

FOR %%f IN (*.*) DO (
  If Not "%0"=="%%f" ren "%%f" "%Date:~6,4%%Date:~3,2%%Date:~0,2% %%~nxf" 
)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 27-02-2013 в 10:40.

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

Отправлено: 10:35, 27-02-2013 | #4


Новый участник


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

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


Извиняюсь, если недостаточно чётко обрисовал вводные.

Странно, но этот скрипт вообще не работает... Пишет:

folder\0000.bat""=="%f" was unexpected at this time

Отправлено: 10:52, 27-02-2013 | #5


Ветеран


Contributor


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

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


Приведите точный текст вашего батника, который Вы запускаете. Мне непонятно откуда взялось folder\0000.bat Насколько я понял, вы используете 2 вариант скрипта. Он работает, если батник в той же папке где файлы и она текущая. Я проверил еще раз. Попробуйте вариант
Код: Выделить весь код
@Echo Off

FOR %%f IN (*.*) DO (
  If Not "%~nx0"=="%%~nxf" ren "%%f" "%Date:~6,4%%Date:~3,2%%Date:~0,2% %%~nxf" 
)
Условие работы - папка с файлами должна быть текущей, батник может быть в любом месте.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 27-02-2013 в 12:59.

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

Отправлено: 12:52, 27-02-2013 | #6


Новый участник


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

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


Сейчас супер! Скорость - огонь! Всё работает!

Мегаспасибо!!!

А до этого - не знаю, файл лежал в той же папке, название 0000.bat, но не работал. Сейчас поменял текст отсюда - огонь!!

Отправлено: 13:30, 27-02-2013 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Добавление к файлу его имени и даты и его печать SergeyVD Скриптовые языки администрирования Windows 2 11-03-2012 16:41
CMD/BAT - Сранение даты из файла с текущей датой InVariable Скриптовые языки администрирования Windows 0 07-02-2012 11:53
Разное - Добавление имени файла в начало каждой строки. CkapHa Программирование и базы данных 2 02-01-2012 22:13
CMD/BAT - [решено] Вставка новых строк и имени в начало файла Евгений_ Скриптовые языки администрирования Windows 3 11-09-2011 14:39
CMD/BAT - [решено] Добавление к имени файла имя папки Arsenik77 Скриптовые языки администрирования Windows 12 13-08-2011 20:28




 
Переход