XP или Win2000
Есть .cmd Файл внтури которого я создаю архив с использованием параметра
-ag:
rar a -agYYYYMMDD-NN test.rar <файлы для архивации>
Вопрос: как после создания архива получить имя файла этого архива ?
Если это невозможно, то тогда вопрос такой:
Как в .cmd можно сформировать имя для файла, что бы оно содержало дату и
время в заданном формате ?
Команды DATE и TIME для этого не годятся, им нельзы задать нужный
формат.
--
С Уважением, Stalker
Origin: The History is Dead
20 авг 08 в 21:25 ты написал(а) всем насчет "Как получить имя только что
созданного архива ?":
TG> XP или Win2000
TG> Есть .cmd Файл внтури которого я создаю архив с использованием
TG> параметра
TG> -ag:
TG> rar a -agYYYYMMDD-NN test.rar <файлы для архивации>
TG> Вопрос: как после создания архива получить имя файла этого архива ?
Если архив в каталоге один, то можно использовать dir *.rar с пайпами.
TG> Если это невозможно, то тогда вопрос такой:
TG> Как в .cmd можно сформировать имя для файла, что бы оно содержало дату
TG> и время в заданном формате ?
TG> Команды DATE и TIME для этого не годятся, им нельзы задать нужный
TG> формат.
Можно взять GNU date, собранный под винду. Либо использовать perl, например.
np: Медвежий Угол [ Степи среди/2008 ] 7. Дай мне огня
Сижу я, примус починяю, вдруг (Среда 20 Августа 2008 21:10:22) мессага от тебя
к Tolik Gusin... Hу, думаю, щас спою...
TG>> Если это невозможно, то тогда вопрос такой:
TG>> Как в .cmd можно сформировать имя для файла, что бы оно содержало
TG>> дату и время в заданном формате ?
%DATE% не устроит?
Ты заходи, если что, Igor!
С уважением, Александр AKA /CorWin
... Кстати, а Стивен Спилбеpг не писал сценаpии к Итpаку?
TG> Если это невозможно, то тогда вопрос такой:
TG> Как в .cmd можно сформировать имя для файла, что бы оно содержало
TG> дату и время в заданном формате ?
TG> Команды DATE и TIME для этого не годятся, им нельзы задать нужный
TG> формат.
Когда давно наваял такой вот cmd'шник:
--------------GetTime.cmd--------------
@echo off
set year=1900
set month=01
set day=01
set hr=00
set sc=00
FOR /F "eol= tokens=1,2,3,4 delims=/. " %%a IN ('date /T') DO (
set d1=%%a
set d2=%%b
set d3=%%c
set d4=%%d
if "%%d"=="" (goto XP:) else (goto w2k:)
goto end:
)
:w2k
set year=%d4%
set month=%d3%
set day=%d2%
goto main:
:XP
set year=%d3%
set month=%d2%
set day=%d1%
goto main:
:main
FOR /F "eol= tokens=1,2 delims=: " %%l IN ('time /T') DO (
set hr=%%l
set sc=%%m
)
goto end:
:end
set ActDate=%year%.%month%.%day% %hr%:%sc%
------------------------------------------
Всего наилучшего!!! OlegX.
> TG> Если это невозможно, то тогда вопрос такой:
> TG> Как в .cmd можно сформировать имя для файла, что бы оно содержало дату
> TG> и время в заданном формате ?
>
> TG> Команды DATE и TIME для этого не годятся, им нельзы задать нужный
> TG> формат.
>
> Можно взять GNU date, собранный под винду.
А где можно взять GNU date ?
Спасибо за скрипт.
> TG> Команды DATE и TIME для этого не годятся, им нельзы задать нужный
> TG> формат.
>
> Можно взять GNU date, собранный под винду. Либо использовать perl, например.
GNU date я нашел (http://unxutils.sourceforge.net/).
Hо я не могу разобраться как задать ей вывод текущей даты или времени в
заданном формате.
Если не трудно, то напиши небольшой пример как это можно сделать.
23 авг 08 в 20:55 ты написал(а) мне насчет "Re: Как получить имя только что
созданного архива ?":
>> TG> Команды DATE и TIME для этого не годятся, им нельзы задать
>> нужный
>> TG> формат.
>> Можно взять GNU date, собранный под винду. Либо использовать perl,
>> например.
TG> GNU date я нашел (http://unxutils.sourceforge.net/).
Да, это оно.
TG> Hо я не могу разобраться как задать ей вывод текущей даты или времени
TG> в заданном формате. Если не трудно, то напиши небольшой пример как это
TG> можно сделать.
date "+FORMAT". Например:
igor@main:~$ date "+%Y%m%d %H:%M"
20080824 08:52
Подробнее о ключах - date --help.
np: Goatlord [ Morbid Tunes of the Black Angels Part 6(66)/2002 ] 9. Early
Beginning Of War
С форматом даты я разобрался, спасибо.
Hо возникла другая проблема: Как дату фозвращаему Date.exe
записать в переменную ?
Я пробовал так:
=====
set cDate=Date.exe "+%Y%m%d"
echo %cDate%
=====
Hо вместо вывода даты в указаном формате выводится: Date.exe "+md"
То есть в переменную cDate не сохранилась дата в указаном формате.
Что я сделал неправильно ?
29 авг 08 в 18:57 ты написал(а) мне насчет "Re: Как получить имя только что
созданного архива ?":
TG> С форматом даты я разобрался, спасибо.
TG> Hо возникла другая проблема: Как дату фозвращаему Date.exe
TG> записать в переменную ?
TG> Я пробовал так:
TG> =====
TG> set cDate=Date.exe "+%Y%m%d"
TG> echo %cDate%
TG> =====
TG> Hо вместо вывода даты в указаном формате выводится: Date.exe "+md"
TG> То есть в переменную cDate не сохранилась дата в указаном формате.
TG> Что я сделал неправильно ?
А cmd вообще позволяет задавать переменные таким образом? Я не уверен.
Раз уж ты скачал unxutils, можно использовать sh оттуда. Тогда скрипт будет
выглядеть так (если синтаксис sh совпадает с bash):
cDate=`Date.exe "+%Y%m%d"`
echo $cDate
np: Darkest Grove [ Pain and Suffering Shall Be Known/2006 ] 8. The Human
Plague
TG> С форматом даты я разобрался, спасибо.
TG> Hо возникла другая проблема: Как дату фозвращаему Date.exe
TG> записать в переменную ?
TG> Я пробовал так:
TG> =====
TG> set cDate=Date.exe "+%Y%m%d"
TG> echo %cDate%
TG> =====
TG> Hо вместо вывода даты в указаном формате выводится: Date.exe "+md"
TG> То есть в переменную cDate не сохранилась дата в указаном формате.
TG> Что я сделал неправильно ?
Тут есть два момента: "%" - это спец-символ для интерпретатора, поэтому его
нужно маскировать; потом, date.exe не возвращает дату, а лишь выводит ее в
поток вывода, по умолчанию, на экран. Поток можно перенаправить, например, в
файл, можно ли сразу в переменную - не знаю, но можно обработать с помощью
команды for:
@echo off
FOR /F "eol= tokens=1 delims= " %%a IN ('Date.exe "+%%Y%%m%%d"') DO (
set cDate=%%a
)
echo %cDate%
Всего наилучшего!!! OlegX.