Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Добавление времени и даты к имени файла (http://forum.oszone.net/showthread.php?t=317917)

russianracer201507 17-08-2016 15:11 2660733

Добавление времени и даты к имени файла
 
Доброго времени суток. Хочу спросить как в батнике к имени файла добавлять текущие дату и время. Можно и такого формата: 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 2660740

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

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 2660782

Код:

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 2660831

Цитата:

Цитата Iska
Код:
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 2660945

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

Iska 18-08-2016 14:52 2661055

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


Время: 15:26.

Время: 15:26.
© OSzone.net 2001-