Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Как получить имя только что созданного архива ?

125 views
Skip to first unread message

Tolik Gusin

unread,
Aug 20, 2008, 1:25:19 PM8/20/08
to
Привет All,

XP или Win2000
Есть .cmd Файл внтури которого я создаю архив с использованием параметра
-ag:

rar a -agYYYYMMDD-NN test.rar <файлы для архивации>

Вопрос: как после создания архива получить имя файла этого архива ?

Если это невозможно, то тогда вопрос такой:
Как в .cmd можно сформировать имя для файла, что бы оно содержало дату и
время в заданном формате ?

Команды DATE и TIME для этого не годятся, им нельзы задать нужный
формат.

--
С Уважением, Stalker

Origin: The History is Dead

Igor Zakharoff

unread,
Aug 20, 2008, 1:10:22 PM8/20/08
to
Greetings, Tolik

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. Дай мне огня

Alexander Nazarenko

unread,
Aug 20, 2008, 1:38:55 PM8/20/08
to
Бог в помощь, Igor!

Сижу я, примус починяю, вдруг (Среда 20 Августа 2008 21:10:22) мессага от тебя
к Tolik Gusin... Hу, думаю, щас спою...

TG>> Если это невозможно, то тогда вопрос такой:
TG>> Как в .cmd можно сформировать имя для файла, что бы оно содержало

TG>> дату и время в заданном формате ?

%DATE% не устроит?

Ты заходи, если что, Igor!

С уважением, Александр AKA /CorWin
... Кстати, а Стивен Спилбеpг не писал сценаpии к Итpаку?

Oleg Kopp

unread,
Aug 21, 2008, 2:20:03 AM8/21/08
to
Hi, Tolik!
Было дело... Tolik Gusin -> All:

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.

Tolik Gusin

unread,
Aug 23, 2008, 9:33:07 AM8/23/08
to
Igor Zakharoff wrote:
>
> Greetings, Tolik
>
> 20 авг 08 в 21:25 ты написал(а) всем насчет "Как получить имя только что
> созданного архива ?":
>
> TG> XP или Win2000
> TG> Есть .cmd Файл внтури которого я создаю архив с использованием
> TG> параметра
> TG> -ag:
>
> TG> rar a -agYYYYMMDD-NN test.rar <файлы для архивации>
>
> TG> Вопрос: как после создания архива получить имя файла этого архива ?
>
> Если архив в каталоге один, то можно использовать dir *.rar с пайпами.
Hет rar-файлов там много, так что это не пройдет.

> TG> Если это невозможно, то тогда вопрос такой:
> TG> Как в .cmd можно сформировать имя для файла, что бы оно содержало дату
> TG> и время в заданном формате ?
>
> TG> Команды DATE и TIME для этого не годятся, им нельзы задать нужный
> TG> формат.
>
> Можно взять GNU date, собранный под винду.

А где можно взять GNU date ?

Tolik Gusin

unread,
Aug 23, 2008, 12:55:43 PM8/23/08
to
Oleg Kopp wrote:
>
> TG> Если это невозможно, то тогда вопрос такой:
> TG> Как в .cmd можно сформировать имя для файла, что бы оно содержало
> TG> дату и время в заданном формате ?
>
> TG> Команды DATE и TIME для этого не годятся, им нельзы задать нужный
> TG> формат.
> Когда давно наваял такой вот cmd'шник:

Спасибо за скрипт.

Tolik Gusin

unread,
Aug 23, 2008, 12:55:43 PM8/23/08
to

Igor Zakharoff wrote:
>
> TG> XP или Win2000
> TG> Есть .cmd Файл внтури которого я создаю архив с использованием
> TG> параметра
> TG> -ag:
>
> TG> rar a -agYYYYMMDD-NN test.rar <файлы для архивации>
>
> TG> Вопрос: как после создания архива получить имя файла этого архива ?
>
> Если архив в каталоге один, то можно использовать dir *.rar с пайпами.

> TG> Команды DATE и TIME для этого не годятся, им нельзы задать нужный


> TG> формат.
>
> Можно взять GNU date, собранный под винду. Либо использовать perl, например.

GNU date я нашел (http://unxutils.sourceforge.net/).
Hо я не могу разобраться как задать ей вывод текущей даты или времени в
заданном формате.
Если не трудно, то напиши небольшой пример как это можно сделать.

Igor Zakharoff

unread,
Aug 23, 2008, 11:49:58 PM8/23/08
to
Greetings, Tolik

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

Tolik Gusin

unread,
Aug 29, 2008, 10:57:27 AM8/29/08
to

> TG> Hо я не могу разобраться как задать ей вывод текущей даты или времени
> TG> в заданном формате. Если не трудно, то напиши небольшой пример как это
> TG> можно сделать.
>
> date "+FORMAT". Hапример:

>
> igor@main:~$ date "+%Y%m%d %H:%M"
> 20080824 08:52
>
> Подробнее о ключах - date --help.

С форматом даты я разобрался, спасибо.
Hо возникла другая проблема: Как дату фозвращаему Date.exe
записать в переменную ?
Я пробовал так:
=====
set cDate=Date.exe "+%Y%m%d"
echo %cDate%
=====
Hо вместо вывода даты в указаном формате выводится: Date.exe "+md"
То есть в переменную cDate не сохранилась дата в указаном формате.

Что я сделал неправильно ?

Igor Zakharoff

unread,
Sep 1, 2008, 3:25:30 AM9/1/08
to
Greetings, Tolik

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

Oleg Kopp

unread,
Sep 1, 2008, 2:51:07 AM9/1/08
to
Hi, Tolik!
Было дело... Tolik Gusin -> Igor Zakharoff:

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.

0 new messages