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

Ответить
Аватара пользователя
Orlov_Pyotr

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

Сообщение Orlov_Pyotr »

Добрый день!



Как при помощи bat файла сделать такое:

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



Например: oszone.txt -> 20130227 oszone.txt
Аватара пользователя
megaloman

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

Сообщение megaloman »

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



ren oszone.txt "%Date:~6,4%%Date:~3,2%%Date:~0,2% oszone.txt"
Аватара пользователя
megaloman

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

Сообщение megaloman »

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



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



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

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

Сообщение megaloman »

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" 
)
Аватара пользователя
Orlov_Pyotr

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

Сообщение Orlov_Pyotr »

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



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



folder\0000.bat""=="%f" was unexpected at this time
Аватара пользователя
Orlov_Pyotr

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

Сообщение Orlov_Pyotr »

Приведите точный текст вашего батника, который Вы запускаете. Мне непонятно откуда взялось 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" 
)

Условие работы - папка с файлами должна быть текущей, батник может быть в любом месте.
Аватара пользователя
Orlov_Pyotr

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

Сообщение Orlov_Pyotr »

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



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



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

Вернуться в «Скриптовые языки администрирования Windows»