Войти

Показать полную графическую версию : [решено] Добавление времени и даты к имени файла


russianracer201507
17-08-2016, 15:11
Доброго времени суток. Хочу спросить как в батнике к имени файла добавлять текущие дату и время. Можно и такого формата: 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
17-08-2016, 15:24
Теперь я нашел такую команду:
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
17-08-2016, 17:07
ren nsb "Buckup\nsb %Date:~0,2%.%Date:~3,2%.%Date:~6,4% (%TIME:~0,2%.%TIME:~0,2%.%TIME:~6,2%)"

russianracer201507
17-08-2016, 20:16
Код:
ren nsb "Buckup\nsb %Date:~0,2%.%Date:~3,2%.%Date:~6,4% (%TIME:~0,2%.%TIME:~0,2%.%TIME:~6,2%)" »
Спасибо за отклик, но я уже сам разобрался

Опиум
18-08-2016, 11:18
Никогда не понимал людей, которые в именах файлов используют пробелы или служебные символы, типа круглых скобок

Iska
18-08-2016, 14:52
Опиум, пробелы — легко. А вот круглые скобки — да, действительно не есть хорошо для пакетной обработки интерпретатором команд.




© OSzone.net 2001-2012