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 1, 2, 3  Naslednja
 
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: 460
Aktiv.: 2.21
Kraj: Prekmurje

PrispevekObjavljeno: Tor Maj 20, 2008 11:26 am    Naslov sporočila:  Bat datoteka Odgovori s citatom

Pozdravljeni

Imam problemček ki ga ne uspem razrešiti. Imam več datotek, ki imajo v imenih datume npr. 200508tor.txt, 210508sre.txt........ V datoteko *.bat bi rad vključil zadevo da bi mi primerjala ime datoteke z dejanskim datumom na računalniku. V kolikor bi se datuma ujemala bi se ta datoteko prenesla v neko drugo mapo na računalniku. Ne uspe mi pa napisati pravilno ukaze. Če kaj pomaga (zaradi lažjega zapisa if stavka se lahko spremeni oblika zapisa datuma v imenu txt datoteke).

nekaj takega:

echo off
if 200508.txt=date/t (če je datum v txt datoteki enak dejanskemu datumu potem...)
copy......

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



Pridružen-a: Pet 16 Dec 2005 17:48
Prispevkov: 183
Aktiv.: 0.88
Kraj: Loče

PrispevekObjavljeno: Tor Maj 20, 2008 12:02 pm    Naslov sporočila:   Odgovori s citatom

Verjetno ne uporabljaš pravega formata datuma in zato posledično primerjava pade...

mogoče tule najdeš kakšen pameten trik http://www.batchfiles.co.nr/

Probaj si po delih sestavit ime iz datuma (LLMMDD...)...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 45.22
Kraj: Kranj - struževo

PrispevekObjavljeno: Tor Maj 20, 2008 1:59 pm    Naslov sporočila:   Odgovori s citatom

uf, ne vem če boš lahko ta problem rešil samo z uporabo IF va .BAT datoteki.
Predvsem ne moreš iskati med obstoječimi datotekami.

Lahko pa narediš samo primerjavo datumov in potem šele kopiraš datoteko. To bi pa verjatno šlo.
Samo spet ne moreš kar uporabiti stringa "date /t", ampak moraš nekako pridobiti string, ki ti ga ta ukaz sicer izpiše na zaslon .. mnogo dela. Rolling Eyes

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 24.72
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Tor Maj 20, 2008 2:43 pm    Naslov sporočila:   Odgovori s citatom

V DOS (cmd, command) napišeš: help if

Pokaže se nakaj ukazov, ki bi jih z nekaj triki lahko uporabil.
...if exist 200508.txt izvedi_nekaj,
...omogočene so primerjave (EQU, NEQ,...)
... date/t > a.txt

Najlažje bi bilo napisati program (pascal, C,...) , ki bi delal to kar želiš.

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 26.85

PrispevekObjavljeno: Tor Maj 20, 2008 2:58 pm    Naslov sporočila:   Odgovori s citatom

Popolnoma napacen pristop k problemu, ce je zgornji opis pravi. Imas mnozico datotek, od katerih zelis le tisto, ki ima ime enako danasnjemu datumu prekopirati nekam drugam.

Koda:
@echo off
date /t > temp.txt
set /p ime = < temp.txt
copy %ime%.txt q:\ciljni\direktorij\nekje
set ime =


Nekaj v tem stilu, dopolni, da bo delovalno pravilno.

_________________
Ka ti bo pa torba ce si kupu kolo ?
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: 460
Aktiv.: 2.21
Kraj: Prekmurje

PrispevekObjavljeno: Tor Maj 20, 2008 10:35 pm    Naslov sporočila:   Odgovori s citatom

Točno to želim kar je napisal Sokrat, vendar mi zadeva še vedno ne deluje. Imam slovenski izpis datuma npr. tor 20.05.2008, tako da bom pač vse datoteke poimenoval na ta način. Koda je sledeča:

Koda:
@echo off
date/t > temp.txt
set/p ime =< temp.txt
copy %ime%.txt c:\test
set ime = tor 20.05.2008


Naredi mi datoteko temp.txt, v kateri je vpisan datum, potem mi pa javi napako:
The system cannot find the file specified
Pa še to. A mi ne bo na ta način poiskal samo datoteko, ki je vpisana v vrstici set ime = ....

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



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 26.85

PrispevekObjavljeno: Tor Maj 20, 2008 11:21 pm    Naslov sporočila:   Odgovori s citatom

rimci je napisal/a:
Naredi mi datoteko temp.txt, v kateri je vpisan datum, potem mi pa javi napako:
The system cannot find the file specified


Iz mojega primera je izginil en presledek, ki je bil tam z dolocenim namenom (da bi stvar delovala). Omenjeno vrstico sem prej tudi preizkusil, preden sem jo napisal v svoj odgovor.

Izmalicil si tudi vrstico, ki pobrise zacasno spremenljivko, da ne trati po nepotrebnem prostora.

Jaz sem v mojem primeru pozabil dodati se vrstico, ki pobrise zacasno datotetko (spet potrata prostora).

Citiram:
Pa še to. A mi ne bo na ta način poiskal samo datoteko, ki je vpisana v vrstici set ime = ....


Ta stvar ne bo iskala cisto nic, ampak bo skopirala datoteko z imenom danasnjega datuma in sufiksom .txt v ciljni direktorij, ostale pa bo pustila pri miru, kakor si zahteval v prvem sporocilu.

_________________
Ka ti bo pa torba ce si kupu kolo ?
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: 460
Aktiv.: 2.21
Kraj: Prekmurje

PrispevekObjavljeno: Sre Maj 21, 2008 11:22 am    Naslov sporočila:   Odgovori s citatom

Sokrat se opravičujem zaradi moje površnosti. Koda zapisa je sedaj taka:

Koda:
echo
date /t > temp.txt
set /p ime = < temp.txt
copy %ime%.txt c:\test
set ime =
pause


Še vedno pa imam isto napako: The system cannot find the file specified (priložen izpis-slika).
Če prav razumem je problem, da mi iz datoteke temp.txt, v katero se v začetku vpiše tekoči datum, ne prebrere tega datuma v obliki stringa iz te datoteke (kar je zapisano v tretji vrstici kode). A sem ga še kje polomil?

lp



izpis.JPG
 Opis:

Download
 Ime datoteke:  izpis.JPG
 Velikost datoteke:  23.9 KB
 Downloadano:  18 krat

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



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 26.85

PrispevekObjavljeno: Sre Maj 21, 2008 3:20 pm    Naslov sporočila:   Odgovori s citatom

Iz meni neznanega razloga Windowsom ni vsec se en presledek v komandi (ne zna zbrati skupaj presledkov v enega samega) Rolling Eyes Desetletja razvoja so bila ocitno porabljena za druge stvari.

Izbrisi torej presledek v vrsticah, ki se zacneta s set, ki pride pred enacaj (=) - v drugi vrstici imas to celo narejeno, kar pomeni, da se spremenljivka nikoli ne pobrise.

Potreboval bos tudi nekaj zongliranja z imeni, ker si se zapicil ravno v date /t, ki da od sebe niz s presledkom vmes. Spremenljivko torej ogradi z narekovaji.

Meni recimo tole deluje pravilno (imam narejeno datoteko z imenom "sre 21.05.2008 " za testiranje, ker je to pac danasnji dan):

Koda:

@echo off
date /t > tmp.txt
set /p ime= < tmp.txt
copy "%ime%" destinacija
set ime=
del tmp.txt


Omenjeno datoteko mi prekopira v "destinacijo" brez pripomb in pocisti za sabo vse, kar napacka. Ce bi bil kaksen drug dan, bi prekopiral datotetko z imenom tistega dne. Ce je ne bi bilo, je ne bi prekopiral, ampak bi izpljunil napako, ki jo je mogoce preusmeriti v NUL ...

_________________
Ka ti bo pa torba ce si kupu kolo ?
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: 460
Aktiv.: 2.21
Kraj: Prekmurje

PrispevekObjavljeno: Sre Maj 21, 2008 8:58 pm    Naslov sporočila:   Odgovori s citatom

Hvala Sokrat. Na ta način pa zadeva deluje. Res je potrebno žongliranje z imeni, vendar trenutno mi ne pade boljša ideja.

Sokrat je napisal/a:
Ce je ne bi bilo, je ne bi prekopiral, ampak bi izpljunil napako, ki jo je mogoce preusmeriti v NUL ...


Kam bi jo lahko preusmeril? Tega ne razumem.


lp


Nazadnje urejal/a rimci Čet Maj 22, 2008 10:18 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 19.39
Kraj: Črnuče

PrispevekObjavljeno: Sre Maj 21, 2008 9:59 pm    Naslov sporočila:   Odgovori s citatom

Null je en tak kraj recimo digitalna nebesa. Kr pošlješ v null izgine.
Pomeni, da če ukaz ob napaki sporoči in ustavi proces lahko output ukaza preusmeriš v null in napake, ki bi prekinjala proces ni več.

Preusmeritev je v bistvu tole: >Null
ALi pa >c:\preusmeritev.txt ,
ki preusmeri izhod v datoteko preusmeritev.txt na C: disku...

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 26.85

PrispevekObjavljeno: Čet Maj 22, 2008 10:41 am    Naslov sporočila:   Odgovori s citatom

Ja, ampak v DOSu/Windowsih se imenuje kar NUL (z enim L-jem) in ne NULL odkar pomnim.
_________________
Ka ti bo pa torba ce si kupu kolo ?
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: 460
Aktiv.: 2.21
Kraj: Prekmurje

PrispevekObjavljeno: Čet Maj 22, 2008 10:54 am    Naslov sporočila:   Odgovori s citatom

Najlepša hvala. Res nisem programer in še marsičesa se bo treba naučiti. Imam pa še eno prošnjo. A lahko kdo napiše primer za sledeče:

imam datoteko v kateri je vpisan sledeči string: sre 21.05.2008. Iz tega stringa želim izbrisat prazno mesto in pa pike, tako da dobim sre21052008 in shranit nazaj v datoteko.

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



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 26.85

PrispevekObjavljeno: Čet Maj 22, 2008 1:11 pm    Naslov sporočila:   Odgovori s citatom

sed obstaja tudi za Windowse :google:
_________________
Ka ti bo pa torba ce si kupu kolo ?
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: 460
Aktiv.: 2.21
Kraj: Prekmurje

PrispevekObjavljeno: Čet Maj 22, 2008 9:59 pm    Naslov sporočila:   Odgovori s citatom

Sokrat je napisal/a:
sed obstaja tudi za Windowse :google:


Lahko razložiš to? Mislim si že ne vem pa če prav mislim.

lp
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 1, 2, 3  Naslednja
Stran 1 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: 210 dni


Powered by phpBB © 2001, 2005 phpBB Group