Batch Files – Automatizare comenzi
| 3.297 afişari | |
Fişierele batch (batch files) reprezintă seturi de comenzi MS – DOS care sunt executate succesiv, grupate în fişiere cu extensia .bat, cu un rol important în reducerea timpului consumat de task-urile repetitive.
Acestea se comportă precum un fişier .exe care atunci când este deschis execută comenzile indicate în liniile de cod.
Puteţi folosi un fişier .bat care să vă mute toate fişierele cu o anumită extensie dintr-un folder în altul. De exemplu, dacă doriţi să mutaţi toate fişierele cu extensia .mp3 din folderul Downloads (unde descărcaţi de obicei fişierele) într-un folder separat numit Muzica, nu trebuie decât să deschideţi aplicaţia Notepad şi să scrieţi următoarea instrucţiune:
move “C:Downloads*.mp3″ “C:Muzica” > C:lista.txt,
după care salvaţi fişierul cu extensia .bat.
- secvenţa “C:Downloads*.mp3″ reprezintă locaţia de unde se preiau fişierele. Am scris *.mp3 ca să selecteze toate fişierele cu acea extensie; dacă de exemplu doriţi să mutaţi fişierul melodie.mp3, comanda va arăta astfel: move “C:Downloadsmelodie.mp3″ “C:Muzica” > C:lista.txt),
- secvenţa “C:Muzica” reprezintă destinaţia unde acestea vor fi mutate, urmând ca la final să se creeze un fişier .txt cu lista fişierelor mutate (prin intermediul secvenţei > C:lista.txt).
Astfel, de fiecare dată când doriţi să mutaţi fişierele de acest tip în folderul Muzica, în loc să le selectaţi şi să le mutaţi cu copy-paste, veţi deschide doar fişierul cu extensia .bat şi voila…
acesta face treaba în locul dumneavoastră.
Alte exemple:
- copy “C:Downloads*.mp3″ “C:Muzica” > C:lista.txt (copiază din folderul Downloads în Muzica fişierele cu extensia .mp3 şi crează un fişier text ce conţine numele fişierelor copiate)
- copy “C:New Folderapa.txt”+”C:New Folderaer.txt” “C:New Foldertot.txt” (concatenează fişierele apa.txt şi aer.txt şi rezultă fişierul tot.txt în aceeaşi locaţie)
- del “C:New Folder*.xls” (şterge din New Folder toate fişierele cu extensia .xls)
- del “C:New Folder” (şterge toate fişierele din New Folder, indiferent de tipul lor)
- dir “C:New Folder”> C:continut.txt (afişează în fişierul conţinut.txt lista fişierelor care se află în New Folder)
Acestea sunt doar câteva comenzi elementare folosite în lucrul cu fişierele batch. Datorită gamei largi de instrucţiuni ce pot fi incluse în fişierele .bat, acestea sunt considerate instrumente utile în gestionarea fişierelor şi în efectuarea de back-up, o parte dintre comenzi putând fi folosite chiar şi de utilizatorii mai “neexperimentaţi” în ceea ce priveşte limbajele de programare.
Pentru cei care doresc să afle mai multe despre fişierele batch, vă punem la dispoziţie câteva link-uri care sperăm să vă fie de folos:
http://commandwindows.com/command2.htm
http://www.computerhope.com/batch.htm
http://www.youtube.com/watch?v=JXFCl69q0vI
http://www.pcstats.com/articleview.cfm?articleID=1767
Voi aţi folosit fişiere batch? Dacă da, aşteptăm exemple şi sugestii. Există şi aplicaţii care vă pot ajuta să scutiţi timp, de exemplu Belvedere.



Salutare lume! Am şi eu o nedumerire. Vreau să fac un batch care să închidă un serviciu din Windows. Este vorba de „Windows Event Log”. Dacă porneşte odată cu Windows-ul, unele jocuri se mişcă ceva mai lent (de exemplu, Grand Theft Auto IV). Eu am venit cu o idee de batch, care să îl seteze „Manual”, să pornească serviciul şi după ce e pornit serviciul să-l seteze înapoi la Disabled. După ce reporneşti calculatorul, se tot reia procesul, adică setare manual (că odată cu repornirea e Disabled) – pornire proces – setare disabled (va fi un proces continuu, care va fi rulat prin startup). Buuun, de făcut am realizat ceva. Fiecare comandă introdusă manual în cmd are efect, dar dacă vreau să-l rulez tot batch-ul odată, nu merge.
Uitaţi ce am realizat:
sc config “eventlog” start= demand
sleep 5
net start “eventlog”
sleep 5
sc config “eventlog” start= disabled
Cele trei comenzi (fără sleep) funcţionează în mod separat. Vreau să fac un fişier bat care să le ruleze pe toate. Chestia cu sleep nu ştiu dacă e eficientă, aş vrea ceva comandă care să aştepte după fiecare comandă executată, până ce e executată complet, apoi să tot treacă la următoarea comandă şi tot aşa… Şi dacă se poate, să ruleze minimizat fereastra. Sper ca cineva să mă ajute!
Poate chiar tu Alex Constantinescu?