Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Czas w pliku nazwie pliku log?

Tworząc skrypt napotkałem na problem z zapisem czasu w nazwie log.

Fragment kodu:

@for /f "tokens=1" %%i in ('date /t') do set data=%%i
@FOR /F "TOKENS=1" %%A IN ('TIME /T') DO SET now=%%A
set czas=%time:~0,2%-%time:~3,2%

ECHO dzis jest %data% , aktualna godzina %Now% !!! >> c:\!_skrypt\log\%date%_g_%czas%_analiza.log

echo . >> c:\!_skrypt\log\%date%_g_%czas%_analiza.log

Skrypt poprawnie zapisuje nazwę pliku log z czasem ale tylko w godzinach 10:00 -> 23:59 a więc XX:YY , kiedy jest czas od 0:00 - 9:59 a wiec pierwsza pozycja w formie jednej cyfry to powstaje plik o nazwie: 2011-11-03_g_

Robiąc małą zmianę w nazwie pliku na \log\%date%_g_%now%_analiza.log otrzymuje plik o nazwie 2011-11-03_g_09

Problemem oczywiście jest : w godzinie, który nie może być przekazany do nazwy pliku, gdyż jest to zabronione.

Jak można obejść ten problem?

konto usunięte

Temat: Czas w pliku nazwie pliku log?

Może skorzystaj z %date% i %time% ?
http://www.cervistech.com/index.php?option=com_content...

C:\Users\mbojko>echo %date:~0,4%-%date:~5,2%-%date:~8,2%
2011-11-03

C:\Users\mbojko>echo %time:~0,2%-%time:~3,2%
9-53

Marcin, i błagam - skorzystaj z Administratorzy Windows, zanim ktoś nas tu ..'ztaruje' i potraktuje pierzem ;)Marcin Bojko edytował(a) ten post dnia 03.11.11 o godzinie 09:59
Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Czas w pliku nazwie pliku log?

Dziękuję za podpowiedź.

OK, Ale post jest w dziale Administratorzy ;-)
Kolejne posty wpiszę do innej grupy ;-) Sorki za kłopocik.Marcin Huta edytował(a) ten post dnia 05.11.11 o godzinie 07:34

konto usunięte

Temat: Czas w pliku nazwie pliku log?

Marcin Huta:
Dziękuję za podpowiedź.

OK, Ale post jest w dziale Administratorzy ;-)
Ehem ehem :

O grupie

administratorzy linux/unix

konto usunięte

Temat: Czas w pliku nazwie pliku log?

Marcin Bojko:
Ehem ehem :

O grupie

administratorzy linux/unix
W takim razie nazwa grupy jest myląca a połowa wątków od czapy :)

konto usunięte

Temat: Czas w pliku nazwie pliku log?

Tomasz K.:
Marcin Bojko:
Ehem ehem :

O grupie

administratorzy linux/unix
W takim razie nazwa grupy jest myląca a połowa wątków od czapy :)
Nazwa jest ok (pretensje do Ojca Założyciela), a wątki Windowsowe są delikatnie usuwane ;)
Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Czas w pliku nazwie pliku log?

Na koniec dodam, że zaproponowany zapis:
set czas=%time:~0,2%-%time:~3,2%-%time:~6,2%

Nadal nie rozwiązuje problemu, gdyż dokłada sekundy ale nie dostawia wartosci 0 przed pierwszą cyfrą w godzinie. ;-)
Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Czas w pliku nazwie pliku log?

Rozwiązaniem będzie zapis:
FOR /F "TOKENS=1,2 DELIMS=: " %%A IN ('TIME/T') DO SET CZAS=%%A_%%B

reszta bez zmian:

@for /f "tokens=1" %%i in ('date /t') do set data=%%i
@FOR /F "TOKENS=1,2 DELIMS=: " %%A IN ('TIME/T') DO SET CZAS=%%A_%%B

ECHO dzis jest %data% , aktualna godzina %czas% !!! >> c:\!_skrypt\log\%date%_g_%czas%_analiza.log

konto usunięte

Temat: Czas w pliku nazwie pliku log?

Marcin Huta:
Na koniec dodam, że zaproponowany zapis:
set czas=%time:~0,2%-%time:~3,2%-%time:~6,2%

Nadal nie rozwiązuje problemu, gdyż dokłada sekundy ale nie dostawia wartosci 0 przed pierwszą cyfrą w godzinie. ;-)
Może dlatego że to nic innego jak limiter? Weź od-do, znaków tyle-a-tyle?
Poza tym magicznie: set czas=%time:~0,2%-%time:~3,2%
i przestał dokładać sekundy ;)
Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Czas w pliku nazwie pliku log?

Rozwiązaniem jest jak pisałem powyżej wpis, deklaracja czasu:

@FOR /F "TOKENS=1,2 DELIMS=: " %%A IN ('TIME/T') DO SET CZAS=%%A_%%B

Można zamykać tego posta jako FIX ;-)Marcin Huta edytował(a) ten post dnia 05.11.11 o godzinie 19:53

konto usunięte

Temat: Czas w pliku nazwie pliku log?

FIX



Wyślij zaproszenie do