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

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

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

Сообщение russianracer201507 »

Доброго времени суток. Хочу спросить как в батнике к имени файла добавлять текущие дату и время. Можно и такого формата: 16.08.2016 (22-49-41). Я не знаю часового пояса конечного пользователя моим файлом, поэтому хотелось, чтобы команда не зависела от времени системы.Но дальше будет интересовать перемещение файла в другую папку. Например файл nsb был в папке CSRPacker2, а я хочу переместить его в папку Buckup, которая находится рядом с батником. Мне не принципиально переместить ли сначала nsb в Buckup и после его переименовать или же сначала переименовать, а после переместить. Я читал похожие случаи, но у меня либо не срабатывала команда, либо переименовывала не очень хорошо.

У меня работала такая команда:



Код:

Код: Выделить всё

@echo off
for /F "tokens=1-4 usebackq delims=. " %%1 in (`time /t`) do set mydate=%%4.%%3.%%2
ren nsb nsb%mydate%

но я не доволен результатом. Она переименовывает без текущего числа, используя только год и месяц. Заранее благодарю за помощь

Вот часть моего .bat:



Код:

Код: Выделить всё

@echo off
Echo 1 - Меню работы с nsb
Echo 2 - Меню работы с scb
SET /P var="Меню: " 
if  %var% equ 1 goto menu_nsb
if  %var% equ 2 goto menu
:menu_nsb
Echo Выберите задачу:
Echo 1 - Распаковать nsb сплошным текстом
Echo 2 - Распаковать nsb текстом с отступами
Echo 3 - Запаковать nsb из сплошного текста
Echo 4 - Запаковать nsb из текста с отступами
set /p var="Задача: "
@if %var% equ 1 goto first
@if %var% equ 2 goto second
@if %var% equ 3 goto third
@if %var% equ 4 goto four
cls
echo "%var%" is not a valid option.
echo.
goto :menu_nsb
:first
CSRPacker.exe unpack -i nsb
goto menu_nsb
:second
CSRPacker.exe unpack -p -i nsb
goto menu_nsb
:third
CSRPacker.exe pack -i nsb.txt
@Echo Off
md .\Buckup
move nsb ./Buckup
@echo Старый nsb файл перемещен в папку buckup
ren nsb.txt.sav nsb
pause
exit
Аватара пользователя
russianracer201507

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

Сообщение russianracer201507 »

Теперь я нашел такую команду:



Код:

Код: Выделить всё

ren nsb "%Date:~6,4%%Date:~3,2%%Date:~0,2%%TIME:~0,2%%TIME:~0,2%%TIME:~6,2% nsb"

Она переименовала мой nsb файл в 20160817151543 nsb.

А можно ли сделать такой формат: 2016.08.17(15:15:43) nsb

или что-то подобное?



Все с переименование разобрался. А как переместить файл, к имени которого добавлено время и дата в папку, которая находится рядом.

Команду использовал такую:



Код:

Код: Выделить всё

ren nsb "nsb %Date:~0,2%.%Date:~3,2%.%Date:~6,4% (%TIME:~0,2%.%TIME:~0,2%.%TIME:~6,2%)"

.

файл nsb был переименован в nsb 17.08.2016 (15.15.39). теперь как его переместить в папку Buckup?
Аватара пользователя
Iska

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

Сообщение Iska »

Код:

Код: Выделить всё

ren nsb "Buckup\nsb %Date:~0,2%.%Date:~3,2%.%Date:~6,4% (%TIME:~0,2%.%TIME:~0,2%.%TIME:~6,2%)"
Аватара пользователя
russianracer201507

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

Сообщение russianracer201507 »

Цитата Iska:



Код:

ren nsb "Buckup\nsb %Date:~0,2%.%Date:~3,2%.%Date:~6,4% (%TIME:~0,2%.%TIME:~0,2%.%TIME:~6,2%)"
CMD/BAT - [решено] Добавление времени и даты к имени файла




Спасибо за отклик, но я уже сам разобрался
Аватара пользователя
Опиум

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

Сообщение Опиум »

Никогда не понимал людей, которые в именах файлов используют пробелы или служебные символы, типа круглых скобок
Аватара пользователя
Опиум

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

Сообщение Опиум »

Опиум, пробелы — легко. А вот круглые скобки — да, действительно не есть хорошо для пакетной обработки интерпретатором команд.
Ответить

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