www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Bat datoteka
Pojdi na stran Prejšnja  1, 2, 3
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> MS Windows razprave
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Sre Maj 28, 2008 3:30 pm    Naslov sporočila:   Odgovori s citatom

Se opravičujem s9876, če sem te "mučil" z temi zadevami. Ampak res mi zadeva ni delovala z programom, ki si ga pripel. Sedaj sem zadevo probal na dugem računlniku in zadeva z istimi nastavitvami deluje. Zakaj mi na prvem računalniku ne deluje zaenkrat ne vem.

Še enkrat hvala za potrpežlivost tebi in vsem ostalim

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
s9876
Član
Član



Pridružen-a: Pon 13 Nov 2006 16:07
Prispevkov: 23
Aktiv.: 0.11

PrispevekObjavljeno: Sre Maj 28, 2008 5:01 pm    Naslov sporočila:   Odgovori s citatom

npr izpis date /t je drugacen, oz odvisen od regionalnih nastavitev v kontrolni plosci
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Čet Maj 29, 2008 12:44 pm    Naslov sporočila:   Odgovori s citatom

To vem in sem probal na tistem prvem računalniku razne regionalne nastavitve pa zadeva ni delala

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Pet Dec 02, 2022 1:16 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljeni

Da obudim to tem, ker mi nekaj ni jasno. V Windowsih sem spremenil nastavitev formata za datum na dd.MM.yyyy. Sedaj pa imam problem da z spodnjo kodo (spremenjena je da naj izpisuje samo y) ne dobim izpis za dan. Pa čudno se vsa "zamakne". V kodi je potem m dejansko leto d je dejansko mesec, y bi moral potem biti dan vendar ga ne izpiše (priponka)

Koda:
@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=%%c
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set day=%%c

set y=%year%
set m=%mon%
set d=%day%
rem set /a d= x-1
set jintian=%y%_%y%_%y%

echo Reports_%jintian%.asc
pause



V kolikor pa v Windowsih izberem format zapisa za datum d.M.yyyy. pa zadeva deluje z zgornjo kodo, le da imam problem tu ker mi pri pri izpisu za mesec in dan izpusti 0 Izpis mora biti take oblike Reports_2022_01_01.

Že vnaprej hvala



izpis.PNG
 Opis:
 Velikost datoteke:  1.19 KB
 Pogledana:  1224 krat

izpis.PNG


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3174
Aktiv.: 14.25
Kraj: Postojna

PrispevekObjavljeno: Pet Dec 02, 2022 3:26 pm    Naslov sporočila:   Odgovori s citatom

Dodaj pogoj, da če ni desetic, dodaš ničlo. Nekaj takega:
Koda:
if "%day:~0,1%" == " " set day=0%day:~1,1%
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Pet Dec 02, 2022 8:26 pm    Naslov sporočila:   Odgovori s citatom

Hvala za predlog, vendar ne deluje kot bi želel. Kodo sem nekoliko spremenil. Če želim izpis na tekoči datum dela v redu. Dobim izpis Reports_2022-12-02. Želim pa izpis za en dan nazaj (v kodi "set /a d=x-1"), torej Reports_2022_12_01, izpiše mi pa Reports_2022_12_1. Torej mi manjkajo desetice.

Koda:
@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 d= x-1
set if "%d:~0,1%" == " " set dd=0%d:~1,1%
set jintian=%y%_%m%_%d%

echo Reports_%jintian%.asc
pause
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3174
Aktiv.: 14.25
Kraj: Postojna

PrispevekObjavljeno: Sob Dec 03, 2022 11:15 am    Naslov sporočila:   Odgovori s citatom

Moja koda predvideva, da je day niz in je v primeru manj kot 10 namesto desetic presledek. Ti pa imaš število. Primerjati moraš kot število ali pa iti na nize.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Sob Dec 03, 2022 4:34 pm    Naslov sporočila:   Odgovori s citatom

Si lahko bolj kokreten? Ne razumem čisto te kode:

Koda:
if "%day:~0,1%" == " " set day=0%day:~1,1%
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3174
Aktiv.: 14.25
Kraj: Postojna

PrispevekObjavljeno: Sob Dec 03, 2022 5:05 pm    Naslov sporočila:   Odgovori s citatom

Šele sedaj vidim, da si pred mojo kodo dodal 'set'. Čemu? Set je naprej v kodi.

Koda:
if "%day:~0,1%" == " " set day=0%day:~1,1%

Če je prvi znak spremenljivke day enak presledku, potem se day priredi presledek + drugi znak iz začetne spremenljivke.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Sob Dec 03, 2022 8:41 pm    Naslov sporočila:   Odgovori s citatom

Ja moja napaka v kodi kar se tiče ukaza set. To kodo sem hotel pripet:

Koda:
@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


Pri meni prvega znaka (desetic) ni. Če odštejem od današnjega dne (set /a day= x-1) en dan dobim 2 in v kolikor datum ni dvomestno število moram pred enice vriniti 0, da dobim izpis Reports_2022.12.02. Očitno delam nekaj narobe...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3174
Aktiv.: 14.25
Kraj: Postojna

PrispevekObjavljeno: Ned Dec 04, 2022 9:12 am    Naslov sporočila:   Odgovori s citatom

Takole imam dejansko narejeno, da dobim ure kot niz z vodilno ničlo, ki je sicer nadomeščena s presledkom.
Koda:
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
echo hour=%hour%
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Ned Dec 04, 2022 8:40 pm    Naslov sporočila:   Odgovori s citatom

Moram priznati da ne razumem tega. Lahko to razložiš:
Citiram:
dobim ure kot niz z vodilno ničlo, ki je sicer nadomeščena s presledkom
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3174
Aktiv.: 14.25
Kraj: Postojna

PrispevekObjavljeno: Pon Dec 05, 2022 11:01 am    Naslov sporočila:   Odgovori s citatom

Kaj je nerazumljivo?
Če sedaj (pravzaprav malo nazaj) pogledam spremenljivko time, dobim " 9:56:52,35". Izraz %time:~0,2% ima vrednost " 9". Torej s presledkom na začetku. Namesto presledka moram dati 0, da ustreza ISO obliki.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rimci
Član
Član



Pridružen-a: Sre 30 Apr 2003 19:01
Prispevkov: 461
Aktiv.: 2.07
Kraj: Prekmurje

PrispevekObjavljeno: Tor Dec 06, 2022 8:39 pm    Naslov sporočila:   Odgovori s citatom

Hvala za razlago. Problem pri meni je to kar si že napisal v enem od zgornjih sporočil
Citiram:
Primerjati moraš kot število ali pa iti na nize
Dan v datumu, ki ga imam je niz, odštejem en dan ki pa je število....

Enostaven primer
Koda:

set var=07
echo %var%
set var1=01
echo %var1%

set /A var2=%var% + var1%
echo %var2%


Število 07 in 01 sta definirani kot niz, zakaj je rezultat 8 in ne 08.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3174
Aktiv.: 14.25
Kraj: Postojna

PrispevekObjavljeno: Sre Dec 07, 2022 10:20 am    Naslov sporočila:   Odgovori s citatom

Ne poznam vseh pravil batch sintakse, ampak za seštevanje se mora pretvoriti v številke, ki pač nimajo definiranih vodilnih ničel. Enak rezultat bi dobili tudi v raznih skriptnih jezikih (kjer + ne pomeni tudi združevanja nizov).
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> MS Windows razprave Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3
Stran 3 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 70 dni


Powered by phpBB © 2001, 2005 phpBB Group