Új hozzászólás Aktív témák

  • csaszizoltan

    csendes tag

    válasz llacee #708 üzenetére

    Szia!

    Több dologra is oda kell majd figyelni:
    1. Ne legyen a filenevekben és a pathokban magyar ékezet, mert a szövegszerkesztőmben másképp definiálja mint a batch futtatásakor (azt hiszem meg lehet csinálni ékezetesekkel is, csak most ezzel én inkább nem bajlódnék :) )

    2. A filenevek szigorúan 101-től kezdődjenek (Set First=101) és ne száznál alacsonyabb értéktől (Ne 099, ne 97, ne 002, ne 1 stb), mert most nem tudnék balról 0-val feltöltést asorszámra vonatkozólag írni batch-ben.

    3. A filenevekben a sorszámok szigorúan egymásután egyesével kövessék egymást (ne legyen kihagyás, vagy ismétlődés különböző kiterjesztésekkel) és szigorúan egységes filenév szerkezettel rendelkezzenek a kiterjesztéssel egyetemben. Nem nagy tragédia, ha nincs, vagy nem megfelelő sorszámú, szerkezetű képfile(ok) van, de akkor aznap nem lesz kép.

    4. A filenevekben belül a sorszámok mindig ismételjék meg egymást (tehát ne legyen 102_reklam103.jpg hanem 102_reklam102.jpg).

    5. Az utolsó filenév sorszám 999 lehet - át lehet írni 1001-9999 intervallumra is, kérd akkor újra a közreműködésemet, mert akkor újabb dolgokra kell odafigyelni, pl ne számoljon annyit az első for ciklussal, azzal amelyik kideríti a last, utolsó létező sorszámot

    6. Azt hogy melyik sorszámú file-t másolta egy "sorszám.txt" (mondjuk 103.txt) létezésével és sorszámának ciklikus növelésével tárolja a képek mappában

    7. tehát létre kell hozni a FromPath mappában egy 101.txt akár üres file-t.

    8. Esetleg ki kell próbálni a batch file ismételt futtatásával először 4-5 képfile-on hogy működik-e, vált a következőre és az elsőre (csak a képsorszámot echo-zom a képernyőre)

    9. A "Set First=" "Set FromPath=" és "Set ToPath=" sorokat (a pathoknál záró \ nélkül) ki kell tölteni értelemszerűen.

    10. Nem tudom, hogy itt a fórumon szokás-e, lehet-e, de ha lehet, akkor a pár órás ügyködésemmel arányos összeget felajánlhatnál a wikipedia-nak :K

    @Echo Off
    Set First=101
    Set FromPath=D:\Batch\Kepek
    Set ToPath=D:\Batch\Aktualis

    Rem az utolso sorszam megkeresese es a Last-ba ertekedasa
    For /L %%L In (%First%, 1, 999) Do If exist %FromPath%\%%L_reklam%%L.jpg Set Last=%%L

    Rem Esetleg a sok kozul egy hianyzo sorszam kiirasa
    Set Absent=000
    For /L %%A In (%First%, 1, %Last%) Do If not exist %FromPath%\%%A_reklam%%A.jpg Set Absent=%%A
    If %Absent%==000 Goto Tovabb
    Echo Legalabb egy sorszamu file hianyzik es az a kovetkezo: %Absent%

    :Tovabb
    Rem Az elozo napi aktualis sorszam megkeresese es az Prev-be toltese
    For /L %%P In (%First%, 1, %Last%) Do If exist %FromPath%\%%P.txt Set Prev=%%P

    Rem If,Else,EndIf-ig: A ciklikusan kovetkezo aktualis sorszam megkeresese es Next-be toltese
    If %Prev%==%Last% Goto Else
    For /L %%N In (%Last%, -1, %Prev%) Do If not exist %FromPath%\%%N.txt Set Next=%%N
    Goto EndIf

    :Else
    Set Prev=%Last%
    Set Next=%First%

    :EndIf
    Echo Az aktualis kepsorszam: %Next%
    Ren %Prev%.txt %Next%.txt
    Copy %FromPath%\%Next%_reklam%Next%.jpg %ToPath%\reklam.jpg >%FromPath%\log.txt

Új hozzászólás Aktív témák