CMD vs BAT
CMD i BAT su datoteke koje se koriste za automatizaciju određenih ponavljajućih zadataka koje korisnik često koristi. Stvaranje CMD ili BAT datoteke slično je upotrebi jednostavnog programskog jezika s prednostima mogućnosti korištenja naredbi naredbenog retka i izvršavanja drugih aplikacija sa ili bez parametara. CMD i BAT datoteke vrlo su slične jedna drugoj s vrlo malim razlikama. BAT je vrlo stara vrsta datoteka koja postoji još od pojave DOS-a. Prenio ga je Microsoft kad je razvio Windows daleko od DOS-a. Tip datoteke CMD razvio je Microsoft kako bi se koristio za implementaciju naredbenih skripti Windows NT, ali je u uporabi i u novijim verzijama sustava Windows koje se temelje na Windows NT.
BAT je stvoren za interakciju s COMMAND.COM, interpretatorom DOS naredbi. Microsoft je većinu DOS naredbi usvojio u svom novom tumaču zvanom CMD. EXE. CMD je stvoren za sučelje s CMD.EXE-om i narušava kompatibilnost s COMMAND.COM. Druga ključna razlika je u načinu na koji postupaju sa varijablom razine pogreške. Kada koristite BAT, ova se varijabla mijenja samo kad se dogodi stvarna pogreška i ne dođe do promjene stanja kad se svaka naredba uspješno izvrši. To ne vrijedi za CMD jer bi varijabla razine pogreške ipak promijenila stanje, čak i ako se ne pojave pogreške. Programeri bi to trebali uzeti u obzir pri izradi složenih skripti jer mogu prouzrokovati malo zbrke.
Osim tih manjih razlika, CMD i BAT su međusobno identični. Većina korisnika koji stvaraju jednostavne skripte za brisanje ili prijenos datoteka oko sebe ne bi trebali imati problema. Za korisnike novije verzije sustava Windows, BAT i CMD prilično su zamjenjivi jer bi CMD.EXE interpretirao i izvršavao naredbe u obje datoteke. Iako je većina korisnika svjesna ove činjenice, puno starijih ljudi koji su imali priliku raditi s DOS-om i njegovim batch datotekama i dalje koristi BAT ekstenziju; jednostavno iz navike i poznavanja.
Sažetak:
1. BAT proširenje koriste DOS i Windows dok je CMD proširenje za Windows NT naredbene skripte
2. BAT ekstenziju mogu tumačiti COMMAND.COM i CMD.EXE, dok CMD proširenje može tumačiti samo CMD.EXE
3. Razina pogreške uvijek mijenja stanje u CMD-u, ali samo kod pogrešaka u NRT-u