Windowsi nahkhiirefailid on mugav viis erinevate toimingute tegemiseks arvutis, mida arvutieksperdid aktiivselt kasutavad. Need võimaldavad teil automatiseerida igapäevaseid ülesandeid, lühendada nende täitmise aega ja muuta keerukas protsess tavakasutajale teostatavaks. See artikkel tutvustab pakkfailide põhivõimalusi ja soovitusi nende ise kirjutamiseks.
Automatiseerimine on tehtud lihtsaks
Kuidas luua nahkhiirefaili? Selleks peate tegema järgmist.
- Looge tekstidokument mis tahes tekstiredaktoris, näiteks Notepadis või WordPadis.
- Kirjutage sinna oma käsud, alustades @echo , ja seejärel (iga kord uuele reale) pealkiri [partii skripti nimi], kaja [teade, mis kuvatakse ekraanil] ja paus.
- Salvestage tekst elektroonilises dokumendis laiendiga .bat (näiteks test.bat).
- Käivitamiseks topeltklõpsake vastloodud pakkfailil.
- Selle muutmiseks peate sellel paremklõpsama ja valima kontekstimenüüst "Muuda".
Toorfail näeb välja umbes selline:
pealkiri See on teie esimene nahkhiirefaili skript!
echo Tere tulemast pakktöötlusskripti!
Allpool käsitleme bat-faili käske ja nende kasutamist üksikasjalikumalt.
1. samm: looge tarkvara skript
Oletame, et kasutajal on võrguga sageli probleeme. Ta kasutab võrguprobleemide tõrkeotsinguks pidevalt käsurida, tippides ipconfig ja pingiga Google'ile. Mõne aja pärast mõistab kasutaja, et oleks palju tõhusam, kui ta kirjutaks lihtsa nahkhiirefaili, kirjutaks selle oma USB-draivi ja käivitaks selle diagnoositud arvutites.
Uue tekstidokumendi loomine
Pakettfail muudab Windowsi käsuviiba abil arvutis korduvate toimingute sooritamise lihtsaks. Allpool on näide skriptist, mis vastutab mõne teksti kuvamise eest ekraanil. Enne nahkhiirefaili loomist peaksite paremklõpsama kataloogi tühjal kohal ja valima "Loo" ja seejärel "Tekstdokument".
Koodi lisamine
Sellel uuel tekstidokumendil topeltklõpsamine avab teie vaiketekstiredaktori. Saate ülaltoodud näite koodi kopeerida ja kleepida tekstikirjesse.
Säilitamine
Ülaltoodud skript kuvab ekraanil teksti "Tere tulemast pakktöötlusskripti!" Elektrooniline dokument tuleb koostada, valides tekstiredaktori menüükäsku “Fail”, “Salvesta nimega” ning seejärel määrates batfaili soovitud nime. See tuleks täiendada laiendiga .bat (näiteks welcome.bat) ja klõpsake nuppu OK. Kirillitsa tähestiku õigeks kuvamiseks peaksite mõnel juhul veenduma, et kodeering on õigesti valitud. Näiteks venestatud Windows NT süsteemi konsooli kasutamisel tuleb dokument salvestada CP866-sse. Nüüd peaksite selle aktiveerimiseks topeltklõpsama nahkhiirefaili otseteel.
Kuid ekraanile ilmub järgmine teade:
"Tere tulemast pakkskripti! Jätkamiseks vajutage suvalist klahvi..."
Kui nahkhiirefail ei käivitu, soovitavad kasutajad minna registrisse ja kustutada võti:
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice."
Ärge arvake, et see on kõik, mida pakkskriptid teha saavad. Skripti parameetrid on käsurea käskude muudetud versioonid, nii et kasutajat piiravad ainult nende võimalused. Ja need on üsna ulatuslikud.
2. samm: tutvuge mõne käsuga
Kui arvutikasutaja on tuttav DOS-i konsooli käskude täitmisega, on ta tarkvaraskriptide loomise meister, kuna need on sama keel. Bat-failide read ütlevad cmd.exe-tõlgile kõik, mida sellelt nõutakse. See säästab aega ja vaeva. Lisaks on võimalik täpsustada mingit loogikat (näiteks lihtsilmused, tingimuslaused jne, mis on kontseptuaalselt sarnased protseduurilise programmeerimisega).
Sisseehitatud käsud
1. @echo on bat-faili käsk, mis võimaldab teil näha käsureal töötavat skripti. Seda kasutatakse tootmiskoodi edenemise vaatamiseks. Kui partiifailis on probleeme, isoleerib see käsk probleemid kiiresti. Lisamine võimaldab koodi täitmise kiiresti lõpetada, vältides tarbetu teabe kuvamist ekraanil.
2. Pealkiri pakub samu funktsioone kui silt
3. Call kutsub välja ühe bat-faili teisest või alamprogrammist ühes skriptis. Näiteks võimsusfunktsioon arvutab % 1 võimsuse % 2:
kui %counter% gtr 1 (
seadke /a counter-=1
endlocal ja määra tulemus=%prod%
4. Cls tühjendab käsurea. Kasutatakse tagamaks, et kõrvalise koodi eelmine väljund ei segaks praeguse skripti edenemise vaatamist.
5. Color määrab fondi ja taustavärvi. Näiteks käsuvärv f9 määrab valged tähed sinisel taustal. Ilma parameetrita käsk taastab vaikesätted.
6. Kaja kasutatakse teabe kuvamiseks, samuti sellise väljundi lubamiseks (kaja sees) või keelamiseks (kaja väljas). Näiteks kaja käsk. prindib uue rea ilma punktita ja kajab . - punkt. Ilma parameetriteta kuvab käsk teavet selle hetkeoleku kohta – kaja sees või kaja väljas.
7. Rem pakub samu funktsioone nagu silt
8. Paus võimaldab katkestada bat-failis olevate käskude täitmise. See võimaldab enne programmi jätkamist lugeda käivitatud ridu. Sel juhul kuvatakse ekraanil teade "Jätkamiseks vajutage suvalist klahvi...".
9. Set võimaldab teil vaadata või määrata keskkonnamuutujaid. Lüliti /p korral küsib käsk kasutajalt sisendit ja salvestab selle. Parameetriga /a võimaldab see teha lihtsaid aritmeetilisi tehteid, määrates ka nende tulemuse muutujale. Stringoperatsioonide sooritamisel ei tohiks võrdusmärgi ees ega järel olla tühikuid. Näiteks kuvab käsk set keskkonnamuutujate loendi, set HOME kuvab argumentide väärtused, mis algavad sõnaga "HOME" ja set /p input=enter an integer: küsib täisarvu ja määrab selle sobivale muutujale.
10. Käivita "" [veebisait] käivitab määratud veebisaidi teie vaikeveebibrauseris.
11. Kui kasutatakse teatud seisundi kontrollimiseks. Kui see on tõsi, siis käivitatakse järgmine käsk. Tingimusi on 3 tüüpi:
- ERRORLEVEL number – kontrollib viimati täidetud käsu lõpukoodi, et näha, kas see ühtib või ületab määratud arvu. Sel juhul näitab 0 ülesande edukat täitmist ja mis tahes muu arv, tavaliselt positiivne, näitab viga. Näiteks saate väljumiskoodi määramiseks kasutada pesastatud käske: kui tõrketase 3, kui mitte tõrketase 4, ilmnes kajaviga nr 3.
- Rida1 == rida2 – kontrollib, kas kaks stringi kattuvad. Näiteks kui välist parameetrit pole, annab käsk if "%1"= ="" goto ERROR juhtimise üle sildile ERROR.
- EXIST name – kontrollib määratud nimega faili olemasolu. Näiteks kui seda pole olemas A:\program.exe KOPIJA C:\PROJECTS\program.exe A: kopeerib program.exe draivi A, kui seda seal pole.
12. Else peab asuma käsuga If samal real. Näitab, et järgmine käsk tuleb täita, kui avaldis on väär.
13. For kasutatakse teatud toimingute kordamiseks loendi iga liikmega. Omab %% argumendi vormingut käsus (list) do. Argumendiks võib olla mis tahes täht A-st Z-ni. Loend on tühikute või komadega eraldatud stringide jada. Kasutada saab ka metamärke. Näiteks:
- %%d jaoks (A, C, D) tee DIR %%d - kuvab järjestikku draivi A, C ja D katalooge;
- %%f jaoks (*.TXT *.BAT *.DOC) do TYPE %%f - prindib kõigi praeguses kataloogis olevate .txt-, .bat- ja .doc-failide sisu;
- %%P jaoks asukohas (%PATH%) tehke, kui on olemas, %%P\*.BAT COPY %%P\*.BAT C:\BAT – kopeerib kõik otsingumarsruudi kõigis kataloogides olemasolevad pakifailid kausta C: \ kausta WAT.
14. Sõna ees olev koolon (:) moodustab sellest lingi, mis võimaldab osa programmi koodist vahele jätta või tagasi minna. Kasutatakse koos käskudega Call ja Goto, mis näitavad, millisest punktist peaks bat-faili täitmine jätkuma, näiteks kui teatud tingimus on täidetud:
15. Muutujad:
- %%a tähistab iga faili kaustas;
- %CD% - praegune kataloog;
- %DATE% - süsteemi kuupäev, mille vorming sõltub lokaliseerimisest;
- %TIME% – süsteemiaeg kujul HH:MM:SS.mm.;
- %RANDOM% – genereeritud pseudojuhuslik arv vahemikus 0 kuni 32767;
- %ERRORLEVEL% – väljumiskood, mille tagastab viimati käivitatud käsk või nahkhiirskript.
Saate eraldada osa muutujas sisalduvast stringist, võttes arvesse selle asukohta ja pikkust, järgmiselt:
%[muutuja]:~[algus],[pikkus]%. Näiteks saate kuvada kuupäeva vormingus PP/KK/AAAA kujul AAAA-KK-PP järgmiselt: echo %DATE:~6.4%-%DATE:~3.2%-%DATE:~0.2%.
16. (. \") - juurkaust. Konsooliga töötades peate enne failinime muutmist, kustutamist jne suunama käsutoimingu kindlasse kataloogi. Pakettfaili kasutamisel käivitage see lihtsalt mis tahes soovitud kataloogis.
17. %digit – aktsepteerib kasutaja poolt nahkhiirefaili edastatud parameetrite väärtusi. Võib eraldada tühikute, komade või koolonidega. "Arv" on arv vahemikus 0 kuni 9. Näiteks %0 võtab praeguse käsu väärtuse. %1 vastab esimesele parameetrile jne.
18. Shift - käsk, mida kasutatakse sisendparameetrite nihutamiseks ühe positsiooni võrra. Kasutatakse välisargumentide edastamisel partiifaili. Näiteks järgmine bat-fail kopeerib käsureal parameetritena määratud failid draivi D:
kui mitte (%1)==() minge järgmiseks
Lisaks saate argumentidega teha järgmisi manipuleerimisi:
- %~ - eemalda ümbritsevad jutumärgid;
- %~f - laiendage parameetrit tee täisnimeks koos draivi nimega;
- %~d - näita ketta nime;
- %~p - kuvab ainult tee;
- %~n - vali parameetrist ainult faili nimi;
- %~x - jäta ainult laiend;
- %~s - teisendab tee lühikeste nimedega esituseks;
- %~a - faili atribuutide ekstraktimine;
- %~t - kuvab loomise kuupäeva ja kellaaega;
- %~z - kuva faili suurus;
- %~$PATH: – Otsib keskkonnamuutujas PATH loetletud kataloogidest ja laiendab parameetrit esimesele leitud sobivale täielikult kvalifitseeritud nimele või tagastab tühja stringi, kui see ei õnnestu.
Metamärgid
Paljud käsud aktsepteerivad failinime mustreid – tähemärke, mis võimaldavad sobitada failinimede rühma. Metamärgid hõlmavad järgmist:
- * (tärn) - tähistab mis tahes märgijada;
- ? (küsimärk) – asendab ühe (või 0) märgi peale punkti (.).
Näiteks käsk dir *.txt kuvab txt-failide loendi ja dir ???.txt tekstidokumentide loendi, mille nimede pikkus ei ületa 3 tähte.
Funktsioonid
Nagu alamprogrammid, emuleeritakse neid, kasutades käske call, setlocal, endlocal ja label. Järgmine näide demonstreerib võimalust määratleda muutuja, milles tulemus kõneliinile salvestatakse:
call:say result=maailm
Arvutused
Bat-failides saate teha lihtsaid aritmeetilisi toiminguid 32-bitiste täisarvude ja bittidega, kasutades käsku set /a. Maksimaalne toetatud arv on 2^31-1 = 2147483647 ja minimaalne on -(2^31) = -2147483648. Süntaks meenutab programmeerimiskeelt C. Aritmeetilised operaatorid on: *, /, %, +, -. Bat-failis tuleb % (täisarvu jaotuse ülejäänud osa) sisestada kui "%%".
Kahendarvu operaatorid tõlgendavad arvu 32-bitise jadana. Nende hulka kuuluvad: ~ (bitipõhiselt EI või komplement), & (JA), | (OR), ^ (eksklusiivne VÕI),<< (сдвиг влево), >> (nihutage paremale). Loogilise eituse operaator on! (Hüüumärk). See muudab 0 väärtuseks 1 ja nullist erinev väärtus 0-ks. Kombinatsioonioperaator on (koma), mis võimaldab ühe komplekti käsuga teha rohkem toiminguid. Kombineeritud omistamisoperaatorid += ja -= avaldistes a+=b ja a-= ning vastavad avaldistele a=a+b ja a=a-b. *=, %=, /=, &=, |=, ^=, >>= töötavad samamoodi.<<=. Приоритет операторов следующий:
(); %+-*/; >>, <<; &; ^; |; =, %=, *=, /=, +=, -=, &=, ^=, |=, <<=, >>=; ,
Literaale saab sisestada kümnend-, kuueteistkümnendsüsteemina (eesoleva 0x-ga) ja kaheksandarvuna (eesoleva nulliga). Näiteks määrab /a n1=0xffff n1-le kuueteistkümnendsüsteemi väärtuse.
Välised käsud
- Väljumist kasutatakse DOS-konsoolist väljumiseks või (valikuga /b) ainult praegusest bat-failist või rutiinist väljumiseks.
- Ipconfig on klassikaline konsoolikäsk, mis kuvab võrguteavet. See sisaldab MAC- ja IP-aadresse ning alamvõrgu maske.
- Ping pingib IP-aadressi, saates sellele andmepaketid, et hinnata selle kaugust ja latentsust (vastust). Kasutatakse ka pausi seadmiseks. Näiteks käsk ping 127.0.01 -n 6 peatab koodi täitmise 5 sekundiks.
Bat failide käskude kogu on tohutu. Õnneks on veebis palju lehti, kus need kõik koos pakkskripti muutujatega loetletakse.
3. samm: kirjutage ja käivitage nahkhiirefail
Järgmine skript lihtsustab oluliselt teie igapäevast võrgutegevust. Mis siis, kui soovite kohe avada kõik oma lemmikuudiste saidid? Kuna skriptid kasutavad konsoolikäske, saate luua skripti, mis avab iga uudistevoo ühes brauseriaknas.
Järgmisena peaksite kordama nahkhiirefaili loomise protsessi, alustades tühjast tekstidokumendist. Selleks peate paremklõpsama suvalises kaustas tühjal kohal ja valima "Uus" ja seejärel "Tekstdokument". Pärast faili avamist peate sisestama järgmise skripti, mis käivitab peamised Internetis saadaolevad venekeelsed meediumid:
käivitage "" http://fb.ru
alusta "" http://www.novayagazeta.ru
käivitage "" http://echo.msk.ru
käivitage "" http://www.kommersant.ru
alusta "" http://www.ng.ru
käivitage "" http://meduza.io
alusta "" https://news.google.com/news/?ned=ru_ru&hl=ru
See skript sisaldab alguskäske “”, mis avavad mitu vahekaarti. Soovitatud lingid saate asendada mis tahes muu omal valikul. Pärast skripti sisestamist minge redaktori menüüsse "Fail" ja seejärel "Save as..." ja salvestage dokument laiendiga .bat, muutes parameetri "Faili tüüp" väärtuseks "Kõik failid" (* *).
Pärast salvestamist skripti käivitamiseks topeltklõpsake seda. Veebilehti hakatakse koheselt laadima. Soovi korral saate selle faili oma töölauale paigutada. See võimaldab teil koheselt juurde pääseda kõikidele oma lemmiksaitidele.
Korraldaja
Kui laadite alla mitu faili päevas, koguneb neid peagi kausta "Allalaadimised" sadu. Saate luua skripti, mis korraldab need tüübi järgi. Lihtsalt asetage .bat-fail koos programmiga korrastamata andmetega kausta ja topeltklõpsake käivitamiseks:
rem Iga kaustas olev fail
%%a jaoks asukohas (.\*") tehke (
rem kontrollima laienduse olemasolu ja sellesse skripti mittekuulumist
if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" (
kontrollige iga laienduse jaoks kausta olemasolu ja kui seda seal pole, looge see
kui seda pole olemas "%%~xa" mkdir "%%~xa"
rem teisaldada fail kausta
teisalda "%%a" "%%~dpa%%~xa\"
Selle tulemusel sorteeritakse failid kataloogis "Allalaadimised" kaustadesse, mille nimed vastavad nende laiendile. See on nii lihtne. See pakkskript töötab mis tahes tüüpi andmetega, olgu see siis dokument, video või heli. Isegi kui arvuti neid ei toeta, loob skript ikkagi vastava sildiga kausta. Kui JPG või PNG kataloog on juba olemas, liigutab programm lihtsalt selle laiendiga failid sinna.
See on lihtne demonstratsioon selle kohta, mida pakkskriptid suudavad. Kui mõnda lihtsat ülesannet tuleb ikka ja jälle teha, olgu selleks failide korraldamine, mitme veebilehe avamine, hulgi ümbernimetamine või olulistest dokumentidest koopiate tegemine, aitab pakkskript teil tüütu töö paari klõpsuga ära teha.
Selles artiklis vaatleme kahte võimalust nahkhiirfaili loomiseks: Exploreri ja Notepadi abil. Sellest piisab uute nahkhiirefailide loomiseks, kuid kõigepealt otsustame, milleks need on. Lihtsamalt öeldes on bat-faili vaja käskude komplekti ühekordseks üleskirjutamiseks Windowsi käsurida ja seejärel käivitage need igal ajal ilma iga kord tippimata. Üldiselt ideaalne variant laiskadele ja/või süsteemiadministraatoritele. =)
Asun kohe asja juurde:
Meetod üks. Meie loome bat fail V" Dirigent»
Lubage mul kohe teha reservatsioon, et see meetod nõuab selle olemasolu Lubatud faililaiendite kuvamine Exploreris. See on paljudel juhtudel mugav ja ma ei saa aru, miks see funktsioon on Windowsis vaikimisi keelatud.
Selle laienduse muutmine(mis on pärast viimast punkti) failis .bat:
Pärast sisestusklahvi vajutamist küsib Windows „Pärast laienduse muutmist ei pruugi see fail olla enam juurdepääsetav. Kas teha muudatus?" No muidugi "jah"! See on täpselt see, mida me püüame saavutada: muutke .txt laiendiks .bat:
Voila! Saime “partiifaili”, st. käivitatav fail, kuhu saate sisestada käsud, mis käivitatakse selle käivitamisel:
Teine meetod. Meie loome bat fail V" Märkmik»
Bat faili loomiseks kasutades " Märkmik", vaja avage Notepad(või mis tahes tekstifaili Notepadis) ja kasutage menüüd " Fail", valik "":
Avaneb faili salvestamise aken. Oluline on arvestada kahe asjaga:
- « Faili tüüp» tuleb kuvada Kõik failid (*.*)
- « Faili nimi" peab olema laiendiga .bat
Vaatame, kuhu salvestame (et seda hiljem leida) ja vajutame nuppu “ Salvesta»:
Kokku:
Kõik need meetodid on mõistlikud, kui teil on administraatori õigused. Kuid esimene nõuab lisaseadeid (mida soovitan siiski muuta ja rakendada).
Vene Föderatsiooni haridusministeerium
TÖÖ PARTII FAILIDEGA
KESKKONNASAKNAD
kursus "Operatsioonisüsteemid"
eriala üliõpilastele 220200
täiskoormusega haridus
Kinnitatud
toimetus- ja kirjastusnõukogu
Saratovi osariik
tehnikaülikool
Saratov 2010
TÖÖ PARTII FAILIDEGA
WINDOWSI KESKKONNAS
Laboritööde juhend
kursus "Operatsioonisüsteemid"
Arvustaja A.F. Reštšikov
Toimetaja O.A. Panina
Litsentsi ID nr 06268 kuupäevaga 14.11.2001
Trükkimiseks allkirjastatud 10.27.10 Formaat 60x84 1/16
Saratovi Riiklik Tehnikaülikool
410054 Saratov, tn. Politehnitšeskaja, 77
Sissejuhatus
Juhistes käsitletakse pakkfailide struktuuri, nende failide loomise meetodeid ja meetodeid mitmete operatsioonide täitmise automatiseerimiseks.
Juhend sisaldab käsutõlgi kirjeldust, pakkfailide ülesehitust, pakkfailides kasutatavate funktsioonide kirjeldust, haridusprobleemi lahendusnäiteid, laboritööde teostamise ülesannet, laboritöö aruande koostamise nõudeid. , samuti selle laboritöö tegemiseks vajaliku kirjanduse loetelu.
Juhend on mõeldud eriala 220200 üliõpilastele ning seda saavad kasutada ka teiste süsteemiprogrammide arendamisega seotud erialade üliõpilased.
Töö eesmärk: pakifailide loomine, mitmete ülesannete täitmise automatiseerimine Windowsi installimisel ja laadimisel, süsteemi optimeerimine ja töökindluse tõstmine.
Käsutõlk ja pakkfailid
Partiifail partii faili) – tekstifail MS-DOS-is, OS/2-s või Windowsis, mis sisaldab käskude jada, mis on ette nähtud käsutõlkile täitmiseks. Pärast pakkfaili käivitamist loeb tõlkprogramm (tavaliselt COMMAND.COM või CMD.EXE) seda ridade kaupa ja täidab käsud järjestikku.
Windows kasutab kahte käsutõlki, commad.com ja cmd.exe, mida saab käivitada menüü Start kaudu (Start->Run->cmd ->OK või Start->Run->commad ->OK). Joonisel fig. 1 näitab DOS-i/Windowsi käskude spikri kasutamise võimalust. Abi on saadaval, tippides käsureale help.
Joon.1 Käsutõlk commad.com
Joonisel fig. Joonis 2 näitab uue faili loomise võimalust, kasutades käsku copy con file_name.extension.
R on.2. Käsutõlk cmd.exe
Pakettfailide (*.cmd või *.bat) kasutamine aitab automatiseerida mitut toimingut Windowsi installimisel ja käivitamisel. Sel juhul pole kasutaja sekkumine vajalik. Neid faile saab teha cmdlines.txt, svcpack.inf, RunOnceEx registri jaotisest või faili jaotisest winnt.sif.
Pakettfailid toetavad kõiki käske, mida saab käsurealt käivitada. Käsurea nägemiseks tehke lihtsalt järgmist: Start->Run->cmd->OK
Vaatame lihtsat partiifaili. Selleks avage Notepad ja tippige sinna järgmine tekst:
TITLE Pakettfaili testimine
ECHO Tere maailm
ECHO Märkmiku käivitamine
START märkmik
ECHO. ECHO Wordpadi käivitamine
START Wordpad
ECHO.
VÄLJU
Seejärel peate faili salvestama mis tahes nimega ja mis tahes asukohta, kuid laiendiga *.cmd (ja mitte .txt, mille Notepad vaikimisi määrab). Kui käivitate selle faili, annab see aknale nimeks "Pakifaili testimine", käivitab Notepad ja WordPad, palub teil vajutada jätkamiseks mis tahes klahvi ja sulgeb aken.
Tabel 1
Pakkfailis kasutatavate käskude tähendused
@kaja väljas |
Peidab rea C:\> ja kõik pakifailis kasutatavad käsud |
Loob ridade vahele tühiku |
|
kajasõnum |
Kuvab aknas sõnumi ainult informatiivsel eesmärgil |
Akna pealkiri |
|
Käivitab rakenduse või installiprotsessi |
|
Kuvab sõnumi "Jätkamiseks vajutage suvalist klahvi..." |
|
Sulgeb käsurea |
Kui lisate XP installikettalt automaatse installimise rakenduse, näevad käsud välja järgmised:
käivita / oota %systemdrive%\install\some_application\setup.exe /võti / rohkem võti,
start alustab rakenduse installimist ja /wait ootab enne järgmise rakenduse installimist, kuni see lõpeb. /wait kasutamine on väga oluline, sest... vastasel juhul algab korraga mitme rakenduse installimine ja konfliktid on vältimatud.
Pakettfaile saab käivitada aadressilt cmdlines.txt või svcpack.inf, mis käivitatakse Windowsi installimise etapis T-13/T-12 (T-13 tähendab 13 minutit enne installimise lõpetamist). cmdlines.txt kasulik selliste ülesannete jaoks nagu kasutajate lisamine või eelnevalt ettevalmistatud registrivõtmete HKEY_CURRENT_USER importimine vaikeprofiili.
Värskenduste (kiirparanduste) installimiseks kasutatakse tavaliselt meetodit svcpack.inf. Kuid miski ei takista teil pakkfaili käsitlemast lihtsalt ühe käigultparandusena.
Pakettfaili sisu näide:
@kaja väljas
PEALKIRI Windows XP hoolduspakett SP2 – järelevalveta installimine
ECHO Järgmise paari minuti jooksul näete automatiseeritud installatsioone
Erinevate tarkvararakenduste ECHO ja registri muudatused
ECHO rakendatud.
ECHO taustapiltide ja ekraanisäästjate eemaldamine...
DEL "%systemroot%\*.bmp"
DEL "%systemroot%\Web\Wallpaper\*.jpg"
DEL "%systemroot%\system32\dllcache\*.scr"
DEL "%systemroot%\system32\*.scr"
ECHO Kasutute otseteede eemaldamine...
Update.lnk"
DEL "%systemdrive%\Dokumendid ja sätted\Kõik kasutajad\menüü Start\Seadistamine
Programmi juurdepääs ja Defaults.lnk"
DEL "%systemdrive%\Dokumendid ja sätted\Kõik kasutajad\menüü Start\Windows
Catalog.lnk"
ECHO TweakUI 2.10 Powertoy installimine
ECHO Palun oodake...
käivita / oota %systemdrive%\Install\TweakUI.msi /qn
ECHO rakendab registri muudatusi...
REGEDIT /S %systemdrive%\Install\RegTweaks.reg
ECHO .NET Framework 1.1 loodud ASP.NET kasutajakonto kustutamine...
võrgukasutaja aspnet /kustuta
See pakkfail eemaldab süsteemi poolt vaikimisi installitud taustapildid ja ekraanisäästjad, samuti mõned otseteed. Seejärel installib see TweakUI, impordib registrivõtmed ja kustutab .NET Frameworki installimisel loodud ASP.NET-i konto.
Väliste käsufailide helistamine:
1. Pärast kutsutud faili käivitamist ei kandu juhtimine üle kutsuvale failile.
@ ECHO VÄLJAS
R.E.M.Loendi väljundlogi- failid
REŽ C:\*. logi
R.E.M.Täitmise ülekandmine failif. nahkhiir
KOPIA A:\*.* C:\
2. Pärast kutsutud faili käivitamist kantakse juhtimine üle kutsuvale failile:
@ECHO VÄLJAS
R.E.M.Loendi väljundlogi- failid
DIR C:\*.log
R.E.M.Täitmise ülekandmine failif. nahkhiir
HELISTA f.bat
KOPIA A:\*.* C:\
Failcmdlines.txt peate selle panema $OEM$ kataloogi ja Windows leiab selle installimise ajal automaatselt üles. Kõik pakettfailid käivitati kohast cmdlines.txt, peab olema samas kataloogis kui cmdlines.txt.
Failsvcpack.inf on salvestatud installiketta kataloogi I386 (peate selle sealt kustutama svcpack.in_). Kõik pakettfailid käivitati kohast svcpack.inf, peab asuma kataloogis I386\svcpack, kui failis endas pole teisiti määratud.
Pakettfailides kasutatakse laialdaselt juhtelementide ülekandekäske IF, FOR, SHIFT, aga ka käsurealt edastatud parameetreid ja I/O ümbersuunamise operaatoreid >, >>,<, |. Полезными оказываются операторы: «+» ‑ слияния файлов, «?» ‑ замены одного символа в имени файла или расширении, «*» ‑ замены нескольких символов в имени файла или расширении.
Süsteemi nimed on: CON, NULL, AUX, COM1, COM2, PRN, LPT1, LPT2. Neid ei saa failideks nimetada.
Hoolimata asjaolust, et arvutikasutajad saavad nüüd hõlpsasti ilma teadmisteta hakkama DOS, eriti kuna uues OS-is DOS tundub, et see puudub üldse, nende teadmised võivad kasuks tulla hädaolukordades, kui Windows mingil põhjusel ei taha käivituda ja saadaval on ainult käsurida. Abi käskude kohta saate abikäsu käivitamisega.
Ülesanded
1. Looge kaks kataloogi. Täitke üks neist mitme erineva laiendiga failiga. Kasutades märksõna for, kirjutage bat-fail, mis edastab kõik parameetrina määratud laiendiga failid ühest kataloogist teise. Kommenteerige toiminguid kasutades rem
2. Loo kataloog. Täitke see mitme failiga, millel on kahte tüüpi laiendid. Kasutades märksõna for, kirjutage bat-fail, mis kopeerib kõik ühte tüüpi failid antud kataloogist ühte ja teise faili teise.
3. Loo kataloog. Täitke see mitme erineva laiendiga failiga. Kasutades märksõna for, kirjutage bat-fail, mis kustutab kõik failid laiendiga .txt.
4. Looge pakkfail, mis teostab kasutaja autoriseerimist, kuvab ekraanil kuupäeva ja süsteemikellaaja, määrab kataloogi nime, milles käivitatav pakifail asub, loob sellesse kataloogi uue faili ja suunab standardväljundi see fail, st. luua logifail.
6. Looge partiifail, mis teostab kasutaja autoriseerimist, kuvab ekraanil kuupäeva ja süsteemikellaaja, loob praeguse kuupäevaga võrdse nimega kausta, looge selles kaustas suvalise nimega fail (kasutaja poolt määratud), väljundnumbrid 1 kuni 10.
Uurige partiifailide struktuuri.
Rakendage juhendis kirjeldatud näiteid.
Hankige oma õpetajalt ülesanne ja täitke see.
Koostage aruanne.
Nõuded aruandlusele
Tiitelleht.
Töö eesmärk ja töö teostamise ülesanne.
Partiifaili test.
Pakkfaili täitmise ekraanipildid.
Järeldused töö kohta.
Enesetesti küsimused
Partiifaili määratlus.
Pakettfailide eesmärk.
Bat faili loomine.
Põhilised käsud.
Kasutatud allikate loetelu
[Elektrooniline ressurss]: Pakkfailide arendamine. – http://www.oszone.net/2245
Selles artiklis vaatleme sellist kasulikku asja nagu " partiifail" Kõigepealt määratleme, mis on nahkhiirefail. Pakett- või partiifailid on lihtsad tekstifailid, mis sisaldavad käskude komplekte ( juhiseid) tõlk ja millel on laiendus bat või cmd ( cmd töötab ainult NT perekonna operatsioonisüsteemides). Selliseid faile saate luua ja redigeerida tavalise märkmiku või mõne muu tekstiredaktoriga.
Nüüd võite küsida, miks teil on vaja selliseid nahkhiirefaile kirjutada? Ja miks neid vaja on? Püüan selgitada.
Esiteks kasutatakse neid töö hõlbustamiseks, s.t. Näiteks peate pidevalt iga päev mõnda toimingut tegema ( näiteks luua teatud dokumentidest arhiiv), saab seda kehafaili abil automatiseerida ja te ei osale enam selles.
Teiseks on need pakifailid väga võimsad ( kui muidugi oskate neid kirjutada), st. Võite isegi kirjutada hea programmi ( Pean silmas funktsionaalsust). Isiklikult aitavad nad mind minu töös palju ja ma lihtsalt unustasin mõned asjad käsitsi tehes.
Liigume nüüd otse nende pakkfailide põhitõdede juurde. Kuidas need luuakse, peate lihtsalt looma lihtsa tekstidokumendi, avama selle ja minema kohe vahekaardile “ Fail->salvesta nimega", sisestage laiendi "" asemel Tekst document.txt", Näiteks " Tekst document.bat" ja salvestage, nii et saame partiifaili laiendiga .bat, kuid see ei tee veel midagi.
Alustuseks toon näite pakifailist, mida kasutan oma töös dokumentide arhiveerimiseks.
"C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.doc "C:\Program Files\WinRAR\winrar. exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.xls "C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY -mm-dd E:\arhaccounts\ d:\accounts\*.txt
Nüüd räägin teile natuke sellest, mida see pakkfail teeb. WinRar käivitub, seejärel järgnevad Winrari käsud:
- a - see on arhiivi lisamiseks;
- -r - töötle alamkaustad;
- -dh - avage jagatud failid;
- -ed - ära lisa tühje kaustu;
- YYYY-mm-dd - lisage arhiivi nimele praegune kuupäev ( kuupäevavorming);
- E:\arhaccounts\ - tee, kuhu lõplik arhiiv asub;
- d:\accounts\*.doc - arhiveerimist vajavate failide tee ja mask.
Sel juhul arhiveerime kõik Wordi, Exceli ja tekstifailid, me ei pea ülejäänuid arhiivima. Meie arhiveerimine läheb teisele kettale, samuti kopeerime saadud arhiivi teise arvutisse, nii et arhiive hoitakse teises kontoris. Kopeerimine toimub üle võrgu, nii et arvuti, kuhu arhiiv kopeeritakse, peab olema sisse lülitatud. Selleks saate kasutada järgmist käsku:
Kopeeri E:\arhaccounts\*.rar \\namecomp\arhiv\
Bat-failide käskude näited
Vaatame nüüd põhilisi käske, mida saate kasutada.
Kui peate faili kustutama, kirjutage järgmine tekst:
Del d:\file\test.doc
Kogu kataloogi kustutamiseks kirjutage:
Rd d:\fail\
Kui peate iga kord mõnest kataloogist kõik kustutama, kasutage seda:
Kaja Y| del d:\file\
- del d:\file\ - see on täpselt kõigi failide kustutamine;
- kaja Y| - käsk kinnitab kustutamise, sest Kui te seda käsku ei sisesta, näete kustutamist kinnitavat teadet - "Jätka" ja peate sellele küsimusele iga kord vastama.
Vaatame nüüd keerulisemat näidet, kus tingimus on juba täidetud:
@echo off "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\test.rar d:\test IF EI OLEMAS d:\test\123.rar MINGE 1, KUI OLEMAS d: \test\123.rar GOTO 2:2 "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\123.rar c:\ del d:\test\123.rar:1 del d:\test\test.rar end
Nüüd ma selgitan, oletame, et peate lahti pakkima arhiivi test.rar, mis sisaldab palju faile, kuid kui seal on fail 123.rar, tuleb see lahti pakkida draivi C juure ja ülejäänud failid jäävad samasse kataloogi puutumata.
Selleks on vaja käsku @echo off, et ekraanil midagi ei peegelduks ( põhimõtteliselt, kui te seda ei vaja, võite selle rea kirjutamata jätta). Järgmisena käivitame Winrari ja pakime test.rar arhiivi testkausta lahti. Siis tuleb tingimus, kui testkaustas ( pärast lahtipakkimist test.rar) meil pole faili 123.rar, siis käivitame lihtsalt pakifaili ja läheme reale: 1 ja seejärel lihtsalt kustutame faili test.rar, kuna see pole vajalik, kuna Oleme juba kõik vajaliku lahti pakkinud. Aga kui seal on fail 123.rar, siis pakkfaili täitmine läheb reale: 2, misjärel fail 123.rar on juba lahti pakitud draivi C juure. Teisisõnu, meil on tingimus täidetud , kui fail on, siis tehke seda, kui faili pole, tehke seda. Oletame, et kui me selles näites tingimust ei täpsusta, annab meie pakettfail veateate, kui meil pole selles kaustas faili 123.rar.
Vaatame nüüd näidet: oletame, et peate iga kord teisaldama failid draivil D asuvast kataloogist mälupulgale. Iga kord, kui peate minema minu arvuti draivi D, valima soovitud kausta, valima sellest kõik failid ja lõikama selle ning seejärel lihtsalt minema mälupulgale ja kleepima see. Kehafaili abil saab seda teha ühe klõpsuga ( ühe tingimusega, et iga kord on mälupulk näiteks G-draiv või mis iganes sul on). Siin on näide sellisest partiifailist:
Teisalda "D:\catalog\*.doc" G:\catalognaflehe\
Ja kõik doc-laiendiga failid, mis asuvad kataloogis D:\catalog, teisaldatakse mälupulgale. Nüüd tahan öelda, et saate pakkfailides kasutada skripte ( skriptid) kasutades Windowsi skriptimishosti ja vajadusel näiteks sõnumi kuvamiseks pärast failide kopeerimist ( eelmine näide) kleebi see:
Echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Failid kopeeritud"); >> %temp%\mes.js algus %temp%\mes.js deltree /y %temp%\mes.js
Tegelikult saab pakifailide kirjutamisest palju rääkida ja see ei mahu muidugi ühte artiklisse, ma näitasin siin ainult põhimõtteid, mida kasutatakse nahkhiirefailide kirjutamisel, nii-öelda alus. Kui soovite teada rohkem käske pakkfailide kirjutamiseks, saate neid hõlpsalt vaadata, tippides ( Start - Run - cmd) abikäsku, kuid loomulikult pole kõiki käske, mida saab pakifailides kasutada. Edu BAT-failide kirjutamisel ( keha särgid).
Teema jätk artiklis -
Igaüks saab kirjutada nahkhiirefaile!
Käsuprotsessor
Paljud operatsioonisüsteemid, sealhulgas need, mille on välja töötanud Microsoft, sisaldavad käsuprotsessorit. See on programmi nimi, mis käivitab erinevate toimingute täitmise vastuseks kasutaja poolt klaviatuurilt sisestatud käskudele. Põhimõtteliselt seisnevad need toimingud vajalike programmide käivitamises teatud parameetritega. Kuid mitte ainult; Hiljem näeme, et mõnda käsku täidab otse käsuprotsessor. Põhimõtteliselt on need käsud, mille eesmärk on juhtida käsu täitmise konteksti ja järjestust. Kuid me ei mõtle liiga sügavalt käskude olemusele, vähemalt mitte siis, kui peame seda tegema. Veelgi olulisem on see, et iga programmi, mida on tehniliselt võimalik käsurealt käivitada, käsitleb käsuprotsessor käsuna. See ei tee vahet algselt operatsioonisüsteemi sisse ehitatud natiivsetel käskudel ja selle peale installitud programmidel.
Käsuprotsessori käivitamiseks toimige järgmiselt.
Klõpsake nuppu Alusta. Ekraanile kuvatakse peamenüü.
Valige peamenüüst Käivita. Ekraanile ilmub dialoogiboks Programmi käivitamine.
Sisestage väljale Ava string cmd.
Klõpsake nuppu Okei. Ekraanile ilmub käsuprotsessori aken.
Käsurida ja käsud
Algsel kujul olev käsuprotsessori aken näeb sünge välja ja sellega töötamine pole enamiku inimeste jaoks eriti mugav. Norton Commanderi stiilis failihaldureid on palju lihtsam kasutada. Need pakuvad nii tööriistu failisüsteemis kiireks navigeerimiseks kui ka käskude sisestamise ajastamiseks.
Käsu sisestamiseks:
Tippige käsureale käsutekst.
Vajutage klahvi Sisenema.
Käsuprotsessori ja operatsioonisüsteemi käsud on kirjeldatud viimase kasutusdokumentatsioonis. See dokumentatsioon sisaldub osaliselt operatsioonisüsteemis endas. Sellele juurdepääsuks kasutage käsku abi. See käsk kuvab saadaolevate käskude loendi. Konkreetse käsu kirjelduse saamiseks kasutage käsku parameetrina abi tuleb märkida tema nimi. Järgmises loendis näidatud käsureal kuvatakse käsu kirjeldus jaoks.
Kui proovisite käsku sisestada abi, ilmselt märkasite, et selle töö tulemus (nn väljund) ei mahu ühele ekraanile. Sama probleem ilmneb ka käsu kirjelduse tekstiga jaoks. Hea uudis on see, et väljundit saab faili ümber suunata. Järgmises loendis näidatud käsurida genereerib faili käsud.txt, mis sisaldab kõigi MS-DOS-i käskude loendit.
abi > käsud.txt
Käsu kirjeldusega faili genereerimiseks jaoks, peate andma järgmise käsu (saate väljundfaili nime muuta ükskõik milliseks).
abi > for.txt jaoks
Kokku sisaldavad kaasaegsed Microsofti operatsioonisüsteemid veidi vähem kui 80 käsku ja neid on võimatu ühes artiklis kirjeldada. Siin saame mainida vaid mõnda failitöötluse automatiseerimiseks kasulikku käsku ja näidata, kuidas neid kasutada. Neid käske kasutatakse edasistes näidetes. Üksikasju saate alati täpsustada käsuga abi või kataloogis.
kopeerida- ühe või mitme faili kopeerimine;
del- ühe või mitme faili kustutamine;
liigutada- ühe või mitme faili või kataloogi teisaldamine;
ümber nimetada(lühendatult ren) - ühe või mitme faili või kataloogi ümbernimetamine;
xcopy- alamkataloogipuu kopeerimine;
mkdir(lühendatult md) - kataloogi loomine;
rmdir(lühendatult rd) - kataloogi kustutamine.
Üks MS-DOS-i käskude süntaksi üldreegleid on see, et parameetrite määramisel määratakse kõigepealt allikas ja seejärel tulemus. Näiteks kui tahame faili teisaldada õlu.txt kataloogist kasti kataloogi laud, peame sisestama järgmises loendis antud käsu.
teisalda tabel box\beer.txt
Kõigepealt mida liigutada, siis kuhu.
Kui tahame faili ümber nimetada lena.txt viilima natasha.txt, siis tuleks käsk kirjutada nagu allpool näidatud.
ren lena.txt natasha.txt
Esiteks, mida ümber nimetada, siis mida ümber nimetada.
Praegune kataloog. Absoluutsed ja suhtelised teed
Failikäskudega töötamisel muutub praeguse kataloogi kontseptsioon äärmiselt oluliseks. Asi on selles, et faili määramisel käsuparameetrina kasutame neile osutamiseks alati ühte kahest võimalikust viisist: kas absoluutset või suhtelist teed. Täielikus tees määrame kõik, mis algab näiteks draivist (või arvuti võrgunimest). d:\misha\box\beer.txt. Ükskõik milline kataloog juhtub käsu sisestamisel olema praegune, vastab kogu tee samale failile. Suhtelise tee puhul toimib alguspunktina praegune kataloog. Suhtelise tee lihtsaim juhtum on failinimi. Käsu täitmise kontekstis tähendab see selle nimega faili, mis asub praeguses kataloogis.
Praegusesse kataloogi suhtelise tee kirjutamiseks on tingimuslik kirje . (punkt). Praegust kataloogi sisaldava kataloogi suhtelise tee salvestamiseks on tingimuslik märge .. (kaks punkti). Järgmises loendis näidatud käsk kopeerib kõik failid praegusest kataloogist kataloogi naaber, mis asub selle kõrval.
koopia *.* .\naaber
Pakettfailid
Siiani eeldasime näidete toomisel, et sisestame iga kord käske käsitsi. Suure hulga failide töötlemisel või samade käskude süstemaatilisel täitmisel muutub see tülikaks. Seetõttu pakub käsuprotsessor käsufailide käivitamise võimalust. Pakettfail on tekstifail, kuhu sisestatakse käsud (või vähemalt üks käsk). Pakettfaili näide on näidatud järgmises loendis. Proovige ära arvata, mida see pakkfail teeb.
abi koopia > copy.help
aita liikuda > liikuda.aidata
liikuma *.help msdos-help
Kui selle faili eesmärk jääb teile saladuseks, proovige see tegelikult luua ja käivitada. Käsufailidele on tavaks anda laiend nahkhiir. Nii tunneb käsuprotsessor seda tüüpi failid ära. Seda faili saab nimetada näiteks make-help.bat.
Pakettfaili käivitamiseks toimige järgmiselt.
Sisestage käsuna tema nimi. Pärast seda käivitatakse partiifail.
Pakettfailis võtab iga käsk ühe rea. Täpsemalt on selleks võimalus paigutada üks käsk mitmele järjestikusele reale, vahetult enne iga reavahetust tuleks panna sümbol “kork”. ^ . (Iga suurtäht peab olema oma rea viimane märk; pärast seda ei tohi olla tühikuid ega tabeldusmärke.) Sellise käsu näide on toodud järgmises loendis.
kui on olemas disser.txt ^
kopeeri disser.txt ^
d:\teadus\paberid\mustandid\allikad
Kuid lihtsuse huvides, et mitte iga kord broneeringuid teha, eeldame, et teatud mõttes on see üks pikk "loogiline" rida.
Partiifaili käivitamisel skannib käsuprotsessor selle ülevalt alla esimesest reast viimaseni ja täidab käsud nende leidmise järjekorras. See täidab neid üldiselt nii, nagu oleksime need kõik käsitsi sisestanud. Üldiselt, kuna mõned käsud käituvad käsitsi sisestamisel ja pakkfailist käivitamisel veidi erinevalt.
Tulevikku vaadates oletame, et vajadusel saab käsu täitmise järjekorda muuta juhtkäskude abil (millest selline vajadus võib tekkida, on omaette küsimus).
Ärge ajage praegust kataloogi segi kataloogiga, milles asub käivitatav pakkfail. Oletame, et praegune kataloog on tööd, sisaldab see kataloogi tööriistad ja tööriistade kataloog salvestab pakkfailid. Käivitate ühe neist käsuga tools\collect-images.bat. Niisiis, selle käsufaili "vaatepunktist" jääb praegune kataloog endiselt alles tööd, kuid mitte tööriistad.
Pakettfaili ja selle väljundi kommenteerimine. kaja ja rem käsud
Partiifail on sisuliselt programm, mis on kirjutatud operatsioonisüsteemi käsuprotsessori keeles. Programmi tekst peaks olema varustatud kommentaaridega, et mõne aja pärast selle juurde naastes ei peaks valusalt meeles pidama, miks seda programmi vaja on ja kuidas see töötab.
MS-DOS-i käsusüsteem pakub kommentaaride loomiseks käsku: rem. See on väljamõeldud käsk, mis ei hõlma mingeid toiminguid, kuid võimaldab kirjutada suvalise teksti oma nime järel olevale reale. Veelgi enam, käsuprotsessor ei taju seda süntaksiveana. Näide kommentaaridega käsufaili vormindamisest on toodud järgmises loendis.
rem ***************************************************** ****
rem Abifailide genereerimine
abi koopia > copy.help
aita liikuda > liikuda.aidata
liikuma *.help msdos-help
Pange tähele tühje ridu, mis jagavad partiifaili "lõikudeks". See lihtne nipp võimaldab muuta partiifaili loetavamaks.
Ülaltoodud pakkfaili täitmisel kuvatakse kõik käsud ekraanil nende täitmise ajal, mis pole alati mugav. Käskude väljastamise saab keelata käsu abil @kaja väljas. "Koera" sümbol käsu ees kaja See tähendab, et seda käsku tuleb täita vaikses režiimis. Sama hästi ei pruugi me käsurida kasutada kaja ära, kuid asetage iga käsu ette "koer".
Paljudel juhtudel soovite, et pakkfail kuvaks ekraanil (või failis) teatud teateid. Mõnel juhul võivad need olla veateated, teisel juhul informatiivsed teated, mis selgitavad pakifaili kasutajale, mis hetkel toimub, kui loome pakifailiga mõne muu kasuliku faili. Sama kajakäsku kasutatakse teadete kuvamiseks. Sellele edastatakse parameetrina kuvatava sõnumi tekst. Täiustatud pakkfaili loend on toodud allpool.
rem ***************************************************** ****
rem Abifailide genereerimine kopeerimis- ja teisalduskäskude jaoks
rem ***************************************************** ****
@echo Abifailide genereerimine. Üks sekund...
rem Abifailide genereerimine
abi koopia > copy.help
aita liikuda > liikuda.aidata
rem Looge abifailide salvestamiseks kataloog
rem Teisaldage abifailid ettevalmistatud kataloogi
liikuma *.help msdos-help
kaja Tehtud!
Parameetrite edastamine käsufaili
Oletame, et tahame luua pakkfaili, mis esmalt genereerib abi kasutaja määratud käsu kirjeldamiseks ja seejärel laadib selle vaatamiseks Notepadi. Trikk seisneb selles, et järgmisel pakkfaili käivitamisel tuleb talle kuidagi öelda, milline käsk meid seekord huvitab.
Selle probleemi lahendamiseks on ette nähtud parameetrite töötlemise mehhanism. See toimib üsna lihtsalt. Kui kasutaja määras partiifaili käivitamisel mitu parameetrit, siis pakkfaili tekstis tähistame esimest neist kirjega %1 , teine sissekanne %2 , kolmas sissekanne %3 jne. Me kasutame neid tähiseid käsufaili tekstis umbes samamoodi nagu asesõnu loomulikus kõnes.
Probleemi lahendava käsufaili tekst on näidatud järgmises loendis. Pöörake tähelepanu käsule abi. Käsufaili esimene parameeter edastatakse sellele selle parameetrina.
rem Loome faili käsu kirjeldusega,
rem, mille nimi edastatakse parameetrina
abi %1 > help.tmp
rem Laadige kirjeldusfail Notepadi redaktorisse
märkmiku abi.tmp
Oletame, et anname sellele partiifailile nime näita-abi.nahkhiir. Näiteks käsu kirjelduse märkmikusse laadimiseks rež, peame käsu järgmiselt sisestama.
show-help.bat rež
Järgnev käsufail loob esimeses parameetris määratud nimega kataloogi ja kirjutab sinna faili, mis sisaldab teises parameetris määratud käsku kirjeldavat teksti.
rem Kahe parameetriga käsufaili näide
rem Loo kataloog esimese parameetriga määratud nimega
rem Looge selles fail koos käsu kirjeldusega,
teise parameetriga määratud rem
abi %2 > %1\%2.help
Mis juhtub, kui kasutaja määrab selle pakkfaili käitamisel neli parameetrit kahe asemel? Pole hullu, need ei sega midagi, neid lihtsalt ei kasutata. Mis juhtub, kui kasutaja määrab ainult esimese parameetri? Teine parameeter jääb tühjaks. Mõju on järgmine: pakettfail käivitatakse, kuid justkui salvestuse asemel %2 seal pole midagi. Abikäsk loob kõigi käskude loendi ja asetab selle tühja nime ja laiendiga .help faili. Kui kasutaja käivitab selle faili ilma parameetreid määramata, siis kui käsuprotsessor proovib käsku täita md(pidage meeles, et see on kataloogi loomiseks), saame süntaksivea, kuna käsul md peab olema parameeter.
Seega loob parameetrite kasutamine suurepäraseid võimalusi, kuid võib asja oluliselt keerulisemaks muuta. Selleks, et pakkfail alati õigesti töötaks, on vaja kontrollida kasutaja määratud parameetrite õigsust ja kuidagi reageerida puudulikele või ebaõigetele sisendandmetele. Loomulikult võite seda mitte teha, kuid valesti töötav pakkfail võib põhjustada probleeme, eriti kui see hõlmab andmete kustutamist või ülekirjutamist.
Muutujad. määra käsk
Muutuja on nimega väärtus. Programmeerimisõpikutes võrreldakse muutujat tavaliselt ümbrikuga, millele on kirjutatud nimi. Ümbriku sisse võib panna midagi, näiteks teatud summa raha – see on selle väärtus. Nagu ümbriku puhul, saab muutuja väärtust muuta.
Muutuja deklareerimiseks ja samal ajal sellele väärtuse määramiseks kasutage käsku seatud. Selle käsu näide on toodud järgmises loendis.
Muutuja väärtuse eraldamiseks asetatakse selle nimi kahe protsendimärgi vahele, nagu allpool näidatud.
rem Abifailide kompilaator CHM-vormingus
set help_compiler=c:\HTML Help Workshop\hcc.exe
rem Projekti abifail mooduli "Ladu" jaoks
määra store_hpj=help\sources\store\store.hpj
rem Projekti abifail mooduli "Müük" jaoks
määrake müügi_hpj=help\sources\sales\sales.hpj
rem Abifailide koostamine
%help_compiler% %store_hpj%
%help_compiler% %sales_hpj%
Järgmine loend näitab, miks muutujad on kasulikud.
Esiteks võimaldavad need kasutada pakettfailis pika fragmendi asemel selle sünonüümi lühikest fragmenti (näiteks tee abifaili kompilaatorisse). Vähemalt on see mugav.
Teiseks võimaldavad need vältida kordumist käsufaili tekstis fragmente, mis võivad tulevikus muutuda. Kujutage ette, et installisime Microsoft HTML Workshopi uuesti teise kataloogi. Kui pakkfailis kasutatakse muutujat selle tee salvestamiseks, siis piisab, kui parandada ainult ühte rida pakkfailis, nimelt seda, milles muutuja väärtus on määratud abi_kompilaator. Kui kirjutaksime tee kompilaatorisse iga kord, kui seda oli vaja välja kutsuda, siis pärast tee muutmist peaksime iga sellist rida parandama. Antud näites on neid kaks, kuid reaalses projektis võib neid olla ka viis või viisteist, olenevalt kompileeritavate abifailide arvust. Probleem pole selles, et iga rea käsitsi parandamine on keeruline (lõppude lõpuks pole keegi käske "kopeeri" ja "kleebi" tühistanud), vaid see, et see suurendab oluliselt juhusliku vea tõenäosust.
Pakettfaili parameetrid on samuti muutujad, kuid need erinevad tavalistest muutujatest selle poolest, et nende väärtused määratakse partiifaili käivitamisel. Tulevikus peame muutujatest, eriti nende väärtustega töötamisest rääkides silmas ka käsufaili parameetreid, vähemalt selgesõnaliste reservatsioonide puudumisel.
Partiifailide kirjutamisel kasutatakse sageli järgmist tehnikat: uue tähendusliku väärtuse saamiseks näidatakse kõrvuti mitu muutuja väärtust (või segatakse mõne sümboli või joonega). Näide on toodud järgmises loendis.
Tingimuste kontrollimine ja valikute valimine. kui ja goto käsud
Käsk if võimaldab teil valida pakkfailis käskude rühmi, mis teatud tingimustest olenevalt käivitatakse või ei käivitata. Milleks see mõeldud on?
Seisundi kontrollimine on parameetreid kasutavate pakkfailide loomisel peaaegu vajalik samm. Enne töö alustamist peab pakkfail üldiselt veenduma, et sellele edastatakse õiged parameetrid. Vastasel juhul on suur oht, et see täidetakse valesti või tulemusteta ning kasutaja jääb vaid mõtlema, milles probleem. Veelgi enam, kui pakkfail kustutab, teisaldab või kirjutab üle mis tahes andmeid, võib see isegi vigastada, kui parameetrid on valed.
Järgmine loend näitab teile juba tuttavat abifaili koostamise käsufaili. Käsufaili algusesse on lisatud kontroll esimese parameetri mittetühjuse kohta. Pange tähele seda süntaksi funktsiooni: võrdlustoimingus kasutatakse topeltvõrdusmärki. Kui esimene parameeter pole tühi, siis käivitatakse käsk goto, mis “viskab” shelli määratud sildi juurde. Sel juhul kompileeritakse selle sildi nimi. Pange tähele, et sildi kohal on selle nime ees koolon, kuid käsus goto seda ei ole. Kui esimene parameeter on tühi, liigub kest järgmisele reale, mis annab veateate. Ja siis järgmisele, mis kannab selle faili päris lõppu nimega sildile lõpetama.
kui mitte, siis "%1"=="" tuleb kompileerida
rem Kui parameeter on tühi, kuvame veateate
echo Help faili projekti nime pole määratud
rem ja minge pakkfaili lõppu
rem lõpuni märk
rem See on silt nimega kompileerimine
rem Allpool on kompileerimiskäsud
rem Abifaili kompilaatori tee
set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"
rem Tee kataloogi, kus asuvad abifailiprojektid
määra projekti_tee=e:\töö\projektid\abiprojektid
rem Helista kompilaatorile konkreetse projekti töötlemiseks,
rem, mille nimi edastatakse esimeses parameetris
%help_compiler% %projekti_tee%\%1.hpj
rem See on silt nimega viimistlus
Olgem ausad, pakutud meetod parameetri kontrollimiseks pole kõige edukam.
Esiteks, kui kasutaja määrab ekslikult parameetrina olematu faili nime, rahuldab pakettfail sellega ja proovib kompileerida. Õigem viis on kontrollida, kas selline fail on tegelikult olemas. Selleks pakub MS-DOS-i käsukeel spetsiaalse sõna olemas. Seetõttu oleks parem kirjutada: kui on olemas, tuleb %1.hpj kompileerida.
Teiseks käsu aktiivne kasutamine minema(nn tingimusteta hüpe) ja sildid ajavad koodi suuresti segadusse. Tehniliselt pole need halvad, kuid sellises stiilis kirjutatud pakkfaili silumine ja hooldamine on üsna ebamugav. Seetõttu on programmeerijad pikka aega pidanud tingimusteta hüppamist ebasoovitavaks tehnikaks. Allpool on näidatud programmeerimisstiili seisukohalt õigem struktureeritud versioon, mis kasutab konstruktsiooni kui...muidu. See toimib järgmiselt: kui tingimus on tõene, siis sulgudes olevad käsud kui, ja kui vale, siis sulgudes pärast muidu.
rem Kontrollige, kas parameeter on seatud
kui seda pole olemas % 1.hpj (
rem Abifaili kompilaatori tee
set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"
rem Tee kataloogi, kus asuvad abifailiprojektid
määra projekti_tee=e:\töö\projektid\abiprojektid
rem Helista kompilaatorile konkreetse projekti töötlemiseks,
%help_compiler% %projekti_tee%\%1.hpj
Toome veel ühe näite tšekkidega töötamise kohta. Järgmine partiifail loob kataloogi nimega abifailid(oletame, et sellesse kompileeritud abifailid üles laadida). Veelgi enam, kui samanimeline kataloog on juba olemas (ja see sisaldab tõenäoliselt vanu abifaile, mida te ei tahaks kaotada: mis siis, kui uued osutuvad halvemaks?), määrab pakkfail sellele bak-laienduse. . Aga kui kataloog abi-failid.bak juba olemas, siis pakkfail kustutab selle (oletame, et meile piisab ühest varukoopiast).
kui on olemas help-files.bak rd help-files.bak
kui olemas abi-failid ren abi-failid abi-failid.bak
Failide hulgitöötlus. käsu eest
Käsk for võimaldab korraldada sama tüüpi korduvate toimingute täitmist. Saate seda kasutada numbrite kuvamiseks ühest kümneni, nagu on näidatud järgmises loendis.
/l %%i jaoks (1,1,10) kaja %%i
Muutuv i nimetatakse silmusloenduriks. Käsu ainulaadse süntaksi tõttu jaoks, silmusloenduri nimi peab koosnema ühest tähest. Veelgi enam, kui kirjutame pakkfaili, siis peame tsükliloenduri nime ette panema topeltprotsendimärgi, aga kui kirjutame käsureale lihtsalt käsu, siis ühe.
Selle käsu loogika on järgmine. Pärast sõna sisse näidatakse tsükliloenduri muutuste ulatust. Selles käsu versioonis on see arvude kolmik: loenduri algväärtus, loendussamm, loenduri piirväärtus. Käsu täitmisel määrab kest kõigepealt muutuja i tähenduses 1 , ja seejärel suurendab see seda silmuse igal sammul võrra 1 kuni see ületab 10 . Ilmselgelt tuleb selliseid samme kümme. Kui määrasime loendusastmeks numbri 2 , siis teostataks tsüklit viis korda. Silmuse igal sammul täidetakse sõna järel kirjutatud tsükli keha teha. Ülaltoodud näites on see kajakäsk, mis kuvab silmusloenduri praeguse väärtuse.
Tõenäoliselt võite mõelda olukorrale, kus midagi sellist on tegelikult vaja, kuid tavaliselt käsku jaoks kasutatakse failide itereerimiseks ja töötlemiseks. Peab ütlema, et üsna lihtsatel juhtudel toimub failide hulgitöötlus metamärkide abil. Kui tahame asendada kõik praeguses kataloogis olevad failid laiendiga .htm peal .html, sisestame käsu ren *.htm *.html. Kuid kui sama asja tuleb teha mitte ühes kataloogis, vaid kataloogipuus, siis ei saa te ilma käsuta hakkama. Järgmine partiifail teostab selle toimingu kõigi praeguse kataloogi veebisaidi alamkataloogis olevate htm-failide puhul. Täpsemalt kogu sees olevas kataloogipuus veebisait.
/r veebisaidi %%i jaoks (*.htm) do ren %%i %%~ni.html
Võti /r näitab vajadust kataloogis läbida veebisait ja kogu selle sisemus. Kui te seda ei määra (aga siis ei tohi te kataloogi määrata), siis töödeldakse ainult praeguses kataloogis olevaid faile. Silmusloenduri väärtuste vahemik selles käsuvariandis on kõigi laiendiga failide komplekt .htm, mis asub kataloogis (täpsemalt puus) veebisait. Esmapilgul kummaline sissekanne ~ni tähendab, et muutuja väärtusest i Peate valima ainult faili nime. MS-DOS-i käsukeel pakub mitmeid selliseid modifikaatoreid, näiteks kirjutamist ~xi tähistab faililaiendit. Kõiki modifikaatoreid kirjeldatakse käsuspikris jaoks.
Silmuse põhiosa võib koosneda mitmest sulgudes olevast käsust.
/r veebisaidi %%i jaoks in (*.htm) do (
rem Printige faili nimi
rem Nimetage fail ümber
ren %%i %%~ni.html
Juhtimise ülekandmine teisele pakkfailile. kutsu käsk
Ühest pakifailist on võimalik kutsuda mõni muu pakkfail. Käsk selleks on helistama. Suurepärane, kutsuvas pakkfailis määratud muutujad on kutsutavale "nähtavad". Ja vastupidi, pärast seda, kui väljakutsutud fail on oma töö lõpetanud ja helistajale kontrolli tagastanud, "näeb" kutsutud "pärimise" poolt talle jäänud muutujaid. See võimaldab partiifaili arendajal teha midagi sellist: Kui mitu käsufaili peavad kasutama samu väärtusi, näiteks mõne faili teed, saab need paigutada eraldi käsufaili, mis täidab konfiguratsioonifaili rolli. Iga töötav käsufail algab konfiguratsioonikutsega. Kasu seisneb selles, et teede muutmisel tuleb muudatusi teha ainult ühes konfiguratsioonifailis, mitte paljudes töötajates.
"Konfiguratsiooni" partiifail config.bat.
rem Abifaili kompilaatori tee
set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"
rem Tee kataloogi, kus asuvad abifailiprojektid
määra projekti_tee=e:\töö\projektid\abiprojektid
"Töötav" partiifail.
rem Muutujate seadistamine
rem Kontrollige, kas parameeter on seatud
kui seda pole olemas % 1.hpj (
rem Kui parameeter on tühi, kuvame veateate
echo Seda abifaili projekti pole olemas.
rem Allpool on kompileerimiskäsud
rem Helista kompilaatorile konkreetse projekti töötlemiseks,
rem, mille nimi edastatakse esimeses parameetris
%help_compiler% %projekti_tee%\%1.hpj