Batch file za izpis datuma

Pomoč za programe, ki jih najdete na straneh www.matjazev.net (mDodatki, Twigy, Govoreča ura...)
Odgovori
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Batch file za izpis datuma

Odgovor Napisal/-a ajk »

Pozdravljeni
Čeprav se vprašanje ne nanaša na programe o katerih se tu največ razpravlja bom poskusil. Imam batch fail kjer želim izpis za en dan nazaj od tekočega dne, vendar pa ko je dan med 1. in 9. da se pred enice vpiše 0 (da je 01, 02....itd do 09). Torej želim imeti izpis Reports_2022_12_02.Očtno pa v tej moji kodi nekaj ne štima, ker pred enicami ne dobi 0. Izpis ki ga dobim je sledeči Reports_2022_12_2.asc.
Del kode:

Koda: Izberi vse

@echo off
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set year=%%c
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set mon=%%b
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set day=%%a

set y=%year%
set m=%mon%
set x=%day%
set /a day= x-1
if "%day:~0,1%" == "" set  day=0%day:~1,1%
set jintian=%y%_%m%_%day%

echo Reports_%jintian%.asc
pause
admin
Site Admin
Prispevkov: 3704
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Batch file za izpis datuma

Odgovor Napisal/-a admin »

Pozdravljeni,

moram vas razočarati , toda tega problema ste se lotili z napačnim orodjem. Vi sicer vidite težavo v oblikovanju, vendar slednje sploh ni težava. Vaša prava težava je izračun včerajšnjega datuma, saj tega algoritma ne morete pisati sami (sploh pa ne v BAT datoteki), temveč morate imeti nak način, da računalniku zaukažete, povej mi včerajšnji datum in tega v DOS-u preprosto nimate.

Da boste dobili občutek o kompleksnosti težave, ki jo želite rešiti, vam prilagam spletno stran, ki rešuje to težavo, toda bodite pozorni na velikost BAT datotek https://www.robvanderwoude.com/datetiment.php#Yesterday

Moj strokovni nasvet je torej da tega ne rešujete v BAT datoteki.

Vprašajte se raje katera druga orodja imate na vsakem računalniku, kjer ta vaša BAT datoteka mora teči. Ker očitno gre za WIN računalnike, potem raje uporabite PowerShell ali VBS.

V PowerShell je vaša težava rešljiva z eno vrstico:

Koda: Izberi vse

(Get-Date).AddDays(-1).toString("\R\e\p\o\r\t\s_yyyy_MM_dd")
lp,
Matjaž Prtenjak
Administrator
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Batch file za izpis datuma

Odgovor Napisal/-a ajk »

Ja moram se strinjati z vami. Velikost v primerjavi datotek je očitna. Ampak kaj ko je navada železna srajca. V tej vaši kodi moram še dodati za moj primer da mi skopira datoteko z tem imenom, ko se pojavi na drugo mesto. Lahko pa uporabim to PowerShell kodo ki jo zaganjam z bat datoteko.
Odgovori