- Ukusetshenziswa kwe-SETLOCAL, izandiso zomyalo, kanye nokwandiswa okubambezelekile kukuvumela ukuthi uhlukanise indawo futhi ulawule ngokunembile iziguquguquko kuma-batch script ayinkimbinkimbi.
- I-ERRORLEVEL iyisisekelo sokuphathwa kwamaphutha, futhi ukuyihlanganisa nabaqhubi abafana ne-|| kuphumela kukhodi ehlanzekile nefundeka kalula. I-CMD.
- Ukunwetshwa okulibazisekile kubalulekile kuma-loop nezakhiwo eziguquguqukayo, njengemidlalo noma ukuphathwa kwe-matrix okulingisiwe kumafayela e-batch.
- Ukwazi kahle izinqubo ezingezansi, ukulawula izinhlamvu ezikhethekile, kanye namaphethini e-batch athuthukile kwenza i-CMD ibe ithuluzi elisebenzayo lokwenza izinto ngokuzenzakalela okuqinile.
Ukusebenza ne-CMD ezingeni elithuthukile Kuhilela okungaphezu nje kokuphonsa ezimbalwa imiyalo okuxekethile: uma uqala ukusebenzisa amafayela e-batch ubunzima, ukunwetshwa okuguquguqukayo okubambezelekile, ukulawulwa kwesandiso, kanye nokuphathwa kwamaphutha amancane kwenza umehluko phakathi kwe- iskripthi Iqinile futhi ehluleka buthule noma ivale ikhonsoli ngaphandle kwesixwayiso. Kulesi sihloko, sizohlola ngokujulile lesi sihloko, sihlole amaqhinga nama-nuances angempela avame ukungaveli eziqondisweni eziyisisekelo.
Uma uke wabhekana nokuvalwa kwefasitela Uma, lapho usebenzisa ifayela lakho le-.bat, i-FOR loop ingasebenzisi amanani alindelekile noma i-ERRORLEVEL iziphatha ngendlela engafanele, kuzodingeka uqhubeke ufunda. Ake sibukeze ukuthi imiyalo injani I-SETLOCAL, ENDLOCAL, ukwanda okubambezelekile (ukunwetshwa okulibazisekile), opharetha abafana no || ukulawula amaphutha, kanye namaphethini athile ajwayelekile asetshenziswa kumaskripthi athuthukile, kufaka phakathi izibonelo ezivela emidlalweni noma ezisetshenziswayo ezilawula iziguquguquko eziningi eziguquguqukayo.
Kuyini i-SETLOCAL futhi kungani ibalulekile kumafayela e-batch athuthukile?
Umyalo we-SETLOCAL uyisisekelo ukulawula imvelo ngaphakathi kweskripthi se-batch ku WindowsUmsebenzi wayo oyinhloko ukuqala "ububanzi bendawo" bezinto eziguquguqukayo zemvelo lapho noma yiziphi izinguquko ozenzayo zizophela khona ngokushesha nje lapho seziqaliswa. ENDLOCAL noma ukuphela kwefayela le-.bat kufinyelelwe.
I-syntax eyisisekelo ye-SETLOCAL Yilokhu okulandelayo, futhi amasu amaningi e-CMD athuthuke kakhulu asekelwe kukho:
I-syntax: setlocal
Usebenzisa lolu hlelo ungalawula Izinto ezimbili ezibaluleke kakhulu: izandiso zomyalo we-CMD kanye nokwandiswa kwe-environment variable okubambezelekile. Zombili izilungiselelo zisetshenziswa kusukela lapho ubiza khona SETLOCAL kuze kube ENDLOCAL kwenzeka ngengozi, ngaphandle kokuthinta ukucushwa komhlaba wonke kweseshini yekhonsoli ngaphandle kwalelo bhulokhi.
Kubalulekile ukuqonda ukuthi ukusebenzisa i-SETLOCAL ngaphandle kwefayela le-.bat (isibonelo, ngokukuthayipha ngesandla kukhonsoli esebenzisana nayo) Akunamphumela wangempela.Inhloso yayo ihloselwe izikripthi, lapho udinga ukuhlukanisa khona izinguquko eziguquguqukayo ezifana PATHizindlela zesikhashana, izinketho zohlelo lokusebenza, njll., ngaphandle kokushiya indawo yomsebenzisi "ingcolile" ngemva kokuthi ifayela le-batch seliqediwe.
Isici esibalulekile se-SETLOCAL Isebenza ngendlela ehlanganisiwe: ungaba nezinhlobo eziningana SETLOCAL y ENDLOCAL ngaphakathi kweskripthi esifanayo, esinye ngaphakathi kwesinye. Izinga ngalinye elihlanganisiwe ligcina "isithombe-skrini" semvelo, futhi uma senziwe ENDLOCAL isimo sangaphambi kwesokugcina sihlala sibuyiselwa SETLOCAL.

Amapharamitha e-SETLOCAL: izandiso kanye nokwandiswa okulibazisekile
I-SETLOCAL ingathola amapharamitha Ukunika amandla noma ukukhubaza kokubili izandiso zomyalo kanye nokwandiswa okulibazisekile kweziguquguquko zemvelo. Amapharamitha atholakalayo yile:
- i-enableextensions: Inika amandla izandiso zomyalo ezifika ku-
ENDLOCALokuhambisanayo, kungakhathaliseki ukuthi babenjani ngaphambili. - khubaza izandiso: khubaza lezo zandiso kuze kube okulandelayo
ENDLOCAL. - inikwe amandla ukwandiswa: ivuselela ukwanda okubambezelekile kweziguquguquko zemvelo.
- disabledelayedexpansion: ikhubaza lokho kunwetshwa.
- /?: ibonisa usizo lwe-SETLOCAL ku ngokushesha komyalo.
Izandiso zomyalo we-CMD Zandisa ukuziphatha kwemiyalo eminingi yakudala, njengokuthi IF, FOR, SET o CALLIzikripthi ezithuthukisiwe zivame ukuncika kulezi zandiso, ngakho-ke kuvamile ukubona amabhlogo anjengalawa:
Isibonelo: setlocal enableextensions enabledelayedexpansion
REM aquí va el código avanzado que necesita extensiones y delayed expansion
endlocal
Ukwandiswa okubambezelekile Lokhu kubalulekile lapho usebenza ngezihibe neziguquguquko ezishintsha ngaphakathi kwe- FOR noma amabhlogo anama-parentheses. Esikhundleni sokusebenzisa %variable%Kusetshenziswa izibabazo !variable!Lokhu kuvumela inani ukuthi lihlolwe ngesikhathi sokusebenza kwe-iteration ngayinye, hhayi lapho ibhulokhi lonke lihlungwa.
Imininingwane ecashile kodwa ewusizo kakhulu kunjalo SETLOCAL kushintsha okuguquguqukayo ERRORLEVEL kuye ngegama layo: uma izimpikiswano zichaziwe enableextensions/disableextensions o enabledelayedexpansion/disabledelayedexpansion, I-ERRORLEVEL isethwe ku-0Uma isebenza ngaphandle kwamapharamitha, Izinguquko ze-ERRORLEVEL zibe yi-1Lokhu kuziphatha kungasetshenziswa ukuthola ukuthi izici ezithile ziyatholakala yini.
Ukuziphatha kwe-ERRORLEVEL kanye nokutholakala kwezandiso ezitholakalayo
I-ERRORLEVEL variable iyindlela ejwayelekile yokwenza izinto ukuze kutholakale ukuthi umyalo uphumelele noma wehlulekile. Kodwa-ke, i-CMD inezinkinga ezithile lapho izandiso zikhutshaziwe, futhi kulula ukuzithola umangale uma ucabanga ukuthi i-ERRORLEVEL ihlale ivuselelwa ngokuzenzakalelayo.
Iphethini evamile ebhaliwe Kuqukethe ukuqalisa i-ERRORLEVEL ibe yinani elingelona elero kusetshenziswa umyalo VERIFY ngempikiswano engavumelekile, bese usebenzisa kusukela lapho SETLOCAL ukuhlola ikhono lokusebenzisa izandiso. Isibonelo esijwayelekile singaba yinto efana nale:
Isibonelo: verify other 2>nul
setlocal enableextensions
if errorlevel 1 echo Unable to enable extensions
Kulesi siqeshana, okulandelayo kwenziwa:Okokuqala, ukusetshenziswa kwe verify other Ukusebenzisa ipharamitha engasekelwa kuphoqa i-CMD ukuthi inikeze inani elingelona u-zero ku-ERRORLEVEL. Bese, SETLOCAL enableextensions Kufanele usethe i-ERRORLEVEL ibe ngu-0 uma ukwazile ukusebenzisa izandiso. Ngakho-ke, uma i-ERRORLEVEL ihlala ku-1 ngemva kwalowo myalo, kusho ukuthi izandiso azitholakali.
Lokhu kungenxa yokuthi, lapho izandiso zomyalo zikhutshaziweI-CMD ayilungisi i-ERRORLEVEL ngendlela evamile kweminye imisebenzi. Yingakho leli qhinga elincane lidingeka kusengaphambili. verifyEzikriphthini eziqinile ezidinga ukusebenza ezindaweni "ezivinjelwe" noma ezidala, lolu hlobo lokuhlola lungaba usizo kakhulu.
Futhi qaphela ukuthi i-SETLOCAL ingaphandle kwefayela le-batch. Ngeke kukusize ukuphatha i-ERRORLEVEL kuseshini yokusebenzisana, ngoba umphumela wendawo yemvelo uhloselwe kuphela umongo wokwenziwa kwesikripthi.
Isibonelo esisebenzayo se-SETLOCAL: ukuguqula i-PATH okwesikhashana
Enye yezinhlelo zokusebenza ezivame kakhulu ze-SETLOCAL kuthinta i-variable PATH ngaphakathi kwefayela le-.bat ukuze uqalise uhlelo lokusebenza olusizayo noma iskripthi, kodwa ngaphandle kokushiya lokho kuguqulwa kusebenza isikhathi esisele seseshini.
Isibonelo esiphelele sesikripthiUmyalo oqala uhlelo lwenethiwekhi "superapp", uqondisa kabusha umphumela wawo kufayela, bese uvula lelo fayela ku-Notepad, ungase ubukeke kanje:
Isibonelo sesikripthi: rem *Begin Comment
rem Este programa inicia el programa por lotes superapp en la red,
rem redirige la salida a un archivo y muestra el archivo
rem en el Bloc de notas.
rem *End Comment
@echo off
setlocal
set path=g:\programs\superapp;%path%
call superapp > c:\superapp.out
endlocal
start notepad c:\superapp.out
Kulesi skripthi, zonke izinguquko ze-PATH kukhawulelwe kubhulokhi elivikelwe yi- SETLOCAL y ENDLOCALNgaphandle kwaleso sigaba, indawo yomsebenzisi (kufaka phakathi i-PATH) ayishintshi. Le phethini isetshenziswa kabanzi lapho kuhlanganiswa amathuluzi ezinkampani zangaphandle ngaphandle kokufuna "ukugcwala" indawo yonke.
Qaphela futhi ukusetshenziswa kwe-CALL ukwenza superappLokhu kuvumela ukugeleza kwefayela le-batch ukuthi kuqhubeke ngokujwayelekile ngemva kokuqedwa, kuqondisa kabusha umphumela kufayela bese ekugcineni kwethulwa i-Notepad ukuze ibonise.
Ukuphathwa kwamaphutha eqembu: ERRORLEVEL, IF kanye no-|| opharetha
Ku-batch scripting, ukuphathwa kwamaphutha ajwayelekile Lokhu kuhilela ukuhlola i-ERRORLEVEL ngokushesha ngemva komyalo ngamunye "obucayi". Uhlelo oluvame kakhulu lulandelayo:
Iphethini: copy blah ..\test
if %errorlevel% neq 0 exit /b %errorlevel%
Esikwenzayo lapha ukuqhuba ikhophi Futhi, uma i-ERRORLEVEL ingalingani no-0, phuma kuskripthi ubuyisele leyo khodi yephutha efanayo. Lena indlela ecacile kakhulu futhi ehambisanayo, kodwa iqala ukugcwalisa iskripthi ngamabhulokhi e-IF aphindaphindayo okwenza kube nzima ukuwafunda.
Ukuze kuhlanzwe ikhodi, abasebenzisi abaningi abathuthukile bamukele i-logic operator ||Lo opharetha usebenzisa umyalo wesibili kuphela uma owokuqala wehluleka (okungukuthi, uma i-ERRORLEVEL yawo ingeyona i-zero). Isibonelo sangaphambilini singafushaniswa ku:
Ifomu elihlanganisiwe: copy blah ..\test || exit /b %errorlevel%
Lowo mugqa owodwa uveza inhloso efanayoUma ikhophi yehluleka, phuma kuskripthi, ubuyisele iphutha. Incane kakhulu, kulula ukuyifunda, futhi ngokuvamile inhle kakhulu. Umlingani omuhle womsebenzisi uthi &&, eqhuba umyalo wesibili kuphela uma owokuqala uphumelela.
Labo abasebenzisa izikripthi zeqoqo nsuku zonke Ngokuvamile bakhetha uhlobo olune || Ukuze kucace, ngaphandle kokuthi udinga ukuhambisana nezinguqulo ze-CMD ezindala kakhulu noma izindawo ezingenazo izandiso. Empeleni, ezinhlelweni zesimanje ze-Windows, lo opharetha usebenza kahle futhi wenza kube lula kakhulu ukuphatha amaphutha.
Amafasitela avala ngenkani: indlela yokuxilonga nokuyivimbela
Inkinga evamile kakhulu lapho kusetshenziswa amafayela e-.bat Uma uchofoza kabili, ikhonsoli iyavuleka, okuthile kusebenza ngokushesha okukhulu, bese ifasitela livala, ngaphandle kokukunikeza isikhathi sokubona ukuthi kwenzekeni. Ngezinye izikhathi okuqukethwe yifayela le-batch akusebenzi kahle.
Abasebenzisi abaningi bazama ukulungisa lokhu besebenzisa i-PAUSE noma i-CMD /KNoma kunjalo, lokhu akusebenzi ngaso sonke isikhathi, ikakhulukazi uma iskripthi siqukethe amaphutha amakhulu e-syntax, izindlela ezingalungile, noma imiyalo yokuqala ephukile. Windows 11 (nezinguqulo ezifanayo), ezinye iziphazamiso zibangela ukuthi i-CMD iphele ngokushesha ngaphandle kokubonisa imiyalezo ecacile.
Ukuze kuxazululwe la macala, kunconywa Vula umyalo ngesandla (Win+R → cmd) bese uqalisa ifayela le-.bat kusuka lapho ngokuthayipha indlela yalo. Ngale ndlela, noma ngabe iskripthi sehluleka, umyalo uzohlala uvulekile, okukuvumela ukuthi ufunde noma yimiphi imiyalezo yamaphutha, umphumela wokuxilonga, noma ungeze imigqa. echo ukuze kutholakale imikhondo yangaphakathi.
Omunye umkhuba omuhle ukuvumela i-ECHO ekuqaleni kweskripthi ngenkathi kulungiswa amaphutha (@echo on) bese uyivala ngemva kokuba izinkinga sezixazululiwe (@echo offLokhu kukuvumela ukuthi ubone ukuthi yimiphi imiyalo esetshenziswayo, ngokulandelana ngayiphi indlela, kanye nangamaphi amapharamitha.
Ukuphathwa kwamaphutha okuthuthukisiwe: amaphethini asebenzayo
Ngale kokusetshenziswa okuqondile kwe-ERRORLEVEL Ngemuva komyalo ngamunye, kunezindlela eziphindaphindayo ezisiza ekwenzeni ikhodi ifundeke kalula futhi iqine. Ezinye izibonelo:
- Ukuhlanganisa imiyalo nge-& kanye ne-||:
comando1 && comando2 || comando3ukuveza "uma umyalo1 uhamba kahle, sebenzisa umyalo2; uma wehluleka, sebenzisa umyalo3". - Imisebenzi enelebula ethi EXIT /B: uhlobo lwezinhlelo ezingaphansi
call :MiFuncionezibuyisela amakhodi ephutha athile, kamuva ahlolwe ngeif errorlevel. - Ukuqaliswa okusobala kwe-ERRORLEVEL ngaphambi kwezingxenye ezibalulekile, ukuze kungadluli amaphutha amadala.
Ukuphathwa kwamaphutha kungabuye kubekwe endaweni eyodwa ukuba nelebula elifanayo, isibonelo :ErrorFatal, okufinyelelwa ngezindlela goto o call Uma kukhona okungahambi kahle, bonisa imiyalezo ecacile kanye nezinsiza zokuvala uma kudingeka (amafayela wesikhashana, izinguquko zesikhombisi, njll.).
Kunoma ikuphi, isinqumo phakathi kokusebenzisa i-IF ERRORLEVEL noma opharetha || Kuncike kakhulu esitayeleni sakho kanye nezinga lokuhambisana olifunayo. Ezimweni eziningi zamanje, indlela || Akugcini nje ngokuba semthethweni, kodwa futhi kuyafiseleka ukuze kucace.
Ukwandiswa nokusebenza okulibazisekile ezikripthini eziyinkimbinkimbi
Uma usebenza ngezakhiwo eziyinkimbinkimbi, njengemidlalo noma izixhumi zekhonsoli "ezinemifanekiso" (isibonelo, i-batch Minesweeper), ukunwetshwa okulibazisekile kuba yinto ebalulekile. Kulezi zimo, kusetshenziswa ama-matrices alingisiwe aneziguquguquko zesitayela. bfuthi kuyadingeka ukubuyekeza nokubonisa isimo ngezihibe ezivame kakhulu.
Isibonelo esijwayelekile kumdlalo we-Minesweeper Uma kusetshenziswa kwimodi ye-batch, lokhu kuzohilela ukudabula ibhodi nokwakha imigqa ngolwazi oluvela kuseli ngayinye. Ukucubungula imigqa kusengaphambili kungase kubukeke kanje (kulungiswe ngendlela evamile):
Ucezu: for /l %%g in (0,1,!width!) do (
set "row=!row!!b!!d!"
)
for %%g in ("!widthx!") do (
set "row=!row!!b!"
)
Lapha, ukwandiswa okubambezelekile kuyasetshenziswa. (izikhalo) !row!, !b!njll.) ukuhlanganisa okuqukethwe okuguquguqukayo kube yi-variable emele umugqa webhodi. Ngaphandle kokunwetshwa okulibazisekile, bekungeke kwenzeke ukwakha lezi zintambo ngendlela efanele ngaphakathi kwe-loop.
Inkinga evame ukuvela emabhodini amakhulu Kumayelana nokusebenza: uma isibuyekezo ngasinye sihilela amakhulu emiyalo setIkhonsoli iba kancane ngokuphawulekayo. Abanye abasebenzisi bazama "ukucubungula" imigqa ibe yiziguquguquko bese belahla konke ngesikhathi esisodwa, kodwa bathola ukuthi umphumela uhunyushwa njengombhalo ocacile esikhundleni se-"executable code."
Leli phuzu liyisihluthulelo: I-CMD ayihloli okuqukethwe kwe-variable njengokungathi iyiskripthi esisha ngaphandle kokuthi kusetshenziswe indlela ethile engaqondile (isibonelo, ukuyibhalela kufayela le-.bat bese uyibiza ngokuthi call), ngakho-ke ukuzama ukwenza ukuguquguquka nge-"code" execute ngqo akusebenzi njengoba bekulindelekile kwezinye izilimi.
Isu elengeziwe lokuthuthukisa ukusebenza Lokhu kuhilela ukunciphisa imisebenzi ethinta ukuhluzwa okuyinkimbinkimbi (njengezinkomba eziningi zokunwetshwa ezibambezelekile ngaphakathi kwezihibe ezijulile), futhi esikhundleni salokho kusebenze ngaphambi kokubala izingxenye ezimile noma ezimile ngaphandle kwezihibe ezibalulekile. Kodwa-ke, ngaphakathi kwemikhawulo ye-CMD, i-Minesweeper enamakhulu amaseli izohlala ithola isijeziso esithile.
Isibonelo somsebenzi wokubonisa ideshibhodi onokunwetshwa okubambezelekile
Umsebenzi webhodi lokudweba Umdlalo we-batch Minesweeper ungafaka izendlalelo eziningana ze-logic: ukubeka kabusha i-cursor, ukumaka okwesikhashana iseli elikhethiwe, ukwakha umugqa wokumelela ngomugqa, bese kubuyiselwa amanani okuqala. Isibonelo esingacacile singaba:
Inqubo elinganiselwe: :board
echo %esc%==]"
set "board="
for /l %%g in (0,1,!height!) do (
set "board=!board!!row!!lf!"
)
echo !board!
set "b= "
set "b= "
exit /b
Lo mkhuba uhilela okulandelayo: ikhesa lithuthela ekhoneni eliphezulu kwesobunxele (kusetshenziswa ukulandelana kokubaleka okugcinwe ku %esc%), izinkomba ezisizayo ziyabalwa (temp_var), izinqamuleli ezibonakalayo zimakwe ku-matrix buchungechunge lwakhiwe board ukuhlanganisa imigqa eseyicutshunguliwe kanye nokuhlukana kwemigqa (!lf!), konke kuphrintwa ngesikhathi esisodwa bese iziguquguquko zibuyiselwa esimweni sazo sokuqala.
Umbuzo ovame ukuvela lapha Kumayelana nendlela yokuqinisekisa ukuthi ukucubungula imigqa akukhiqizi umbhalo kuphela, kodwa futhi kuhunyushwa njengemiyalo noma kuvuselela ibhodi ngempumelelo. Ku-CMD, okuqukethwe okuguquguqukayo akuhlolisiswa kabusha ngokuzenzakalelayo njengekhodi, ngakho ikhambi lihilela ukushintsha indlela: ukunciphisa inani set y echo ngokubuyekeza, nokuhlanganisa umphumela ngangokunokwenzeka, njengoba iphethini yangaphambilini yenza ngokuguquguquka board.
Isu elengeziwe lokuthuthukisa ukusebenza Lokhu kuhilela ukunciphisa imisebenzi ethinta ukuhluzwa okuyinkimbinkimbi (njengezinkomba eziningi zokunwetshwa ezibambezelekile ngaphakathi kwezihibe ezijulile), futhi esikhundleni salokho kusebenze ngaphambi kokubala izingxenye ezimile noma ezimile ngaphandle kwezihibe ezibalulekile. Kodwa-ke, ngaphakathi kwemikhawulo ye-CMD, i-Minesweeper enamakhulu amaseli izohlala ithola isijeziso esithile.
Amaphutha okucubungula nezinhlamvu ezikhethekile
Ezibhalweni ezinkulu, kuvela enye inkinga evamile. Lezi yizinhlamvu ezikhethekile: omakaki, ukuqondisa kabusha, izimpawu zokucaphuna, izimpawu zokubabaza, njll. izinkinga zokubhalaUma usebenzisa ukunwetshwa okulibazisekile kanye nama-loop ahlanganisiwe, laba balingiswa bangaphula ukuhluzwa komyalo uma bengaphunyuki kahle.
Isibonelo, i-parenthesis yokuvala engalindelekile Lokhu kungabangela amaphutha anjengokuthi “Lo myalo awusekelwa” noma kumane kuhoxise ukwenziwa kwebhulokhi. Ukuze ugweme lokhu, kufanele uqaphele kakhulu lapho wakha imigqa nge echo eziqukethe omakaki noma izimpawu yegobolondo, futhi bathembele kumasu anjengokuthi echo( noma ukukopishwa kwezinhlamvu ezithile ukuze kuphunyuke.
Kumadokhumenti akhethekile ku-batch ethuthukisiwe Amathebula "ezinhlamvu ezikhethekile" kanye namanothi okuthi ungazibalekela kanjani ezimweni ezahlukene (ngaphakathi kwe-FOR loops, kumabhulokhi anama-parentheses, ane-delayed expansion active, njll.) ngokuvamile afakiwe. Nakuba singeke singene emininingwaneni ngayinye lapha, kufanelekile ukukhumbula ukuthi lapho iskripthi siyinkimbinkimbi kakhulu, kulapho kufaneleka khona ukusihlola isinyathelo ngesinyathelo futhi sibukeze ngokucophelela ukuthi lezi zimpawu ziphathwa kanjani.
Kuvamile futhi ukuthola amasu ayinkimbinkimbi kakhulu ezihlanganisa i-CMD nezinye izilimi noma amathuluzi (njenge-VBScript noma I-PowerShell) ukubhala izingcezu ezincane kumafayela esikhashana bese uzisebenzisa, sisebenzisa okungcono kakhulu kwendawo ngayinye. Kulezi zimo, ukunakekelwa ngezinhlamvu ezikhethekile kanye nokuqondisa kuba kubaluleke kakhulu.
Imisebenzi, izinqubo ezingaphansi, kanye nezakhiwo ezithuthukisiwe eqenjini
Umhlaba wokuhlanganisa okuthuthukisiwe Akugcini nje emiyalweni ehlukanisiwe: kukhona yonke i-ecosystem yamaphethini okwakha imisebenzi engasetshenziswa kabusha, ukulingisa ama-array, ukuphatha izingxabano, nokubuyisa imiphumela. Umkhuba ojwayelekile ukusebenzisa amathegi (:MiFuncion) nomyalo call, futhi dala amamenyu asebenzisanayo:
Isibonelo: @echo off
call :FunctionX
rem Más código aquí
exit /b 0
:UmsebenziX
Iphutha lokuphatha ngaphakathi komsebenzi
i-rem …
ukuphuma /b 0
Imizila emincane yeqembu Zivumela ukugoqwa kwe-logic eyinkimbinkimbi, phakathi kwezinye izinto, ukuguqula izingcezu eziphindaphindwayo (njengokuhlola amaphutha, ukuguqulwa kwezintambo, noma ukuguqulwa kwamafayela) zibe amabhlogo angabizwa. exit /b I-ERRORLEVEL ethile ingabuyiselwa kumuntu oshaya ucingo, bese ihlolwa ukuthi if errorlevel noma nabaqhubi abafana ||.
Kukhona amasu athuthukile kakhulu lapho i-Alternate Data Streams (ADS) isetshenziswa ukugcina ikhodi yokusiza ehlotshaniswa nefayela le-.bat uqobo, noma lapho izingxenye kwezinye izilimi ezifana ne-VBScript zixutshwa ngaphakathi kwefayela elifanayo. tricks Zivumela ukwandisa amakhono e-batch, kodwa futhi zenza kube nzima ukugcinwa kanye nokulungisa amaphutha, ngakho-ke zivame ukugcinelwa izimo ezithile kakhulu.
Kumabhukwana amaningi okubhala amaqoqo amaningi Izihloko ezinjengokukhiqizwa kwamafayela aguquguqukayo kanye nokusetshenziswa nazo zihlanganisiwe. pushd y popd ukuphatha ngokuphephile izincwajana, ukushintshwa kwezimpikiswano (%1, %2njll.), kanye nomehluko omncane phakathi kwe-.BAT kanye ne-.CMD. Konke lokhu kuzuza kakhulu ekulawulweni kwemvelo okuhle nge SETLOCAL/ ENDLOCAL kanye nokuphathwa kwamaphutha ngendlela ehlelekile.
Ukubusa ukunwetshwa okulibazisekile, ukuphathwa kwe IPHUTHA kanye nokusetshenziswa kwamasu kwe- I-SETLOCAL Yilokhu okuhlukanisa izikripthi zeqoqo "ezenziwe ekhaya" kulezo ezingasetshenziswa ngempela ezenzakalelayo eziyinkimbinkimbi nezithembekile, kungaba ngamathuluzi angaphakathi, izinsiza zesistimu, noma ngisho nemidlalo emincane yekhonsoli kanye nokuhlolwa.
Umbhali oshisekayo ngomhlaba wamabhayithi nobuchwepheshe ngokujwayelekile. Ngiyathanda ukwabelana ngolwazi lwami ngokubhala, futhi yilokho engizokwenza kule bhulogi, ngikubonise zonke izinto ezithakazelisayo kakhulu ngamagajethi, isofthiwe, ihadiwe, izitayela zobuchwepheshe, nokuningi. Inhloso yami ukukusiza ukuthi uzulazule emhlabeni wedijithali ngendlela elula nejabulisayo.
