Kazalo:

Napredna serija: 12 korakov
Napredna serija: 12 korakov

Video: Napredna serija: 12 korakov

Video: Napredna serija: 12 korakov
Video: Призрак (фильм) 2024, Julij
Anonim

ampak to je v redu, preprosto uporabite ukaz CD ali CHDIR, da spremenite imenik. Toda v tem primeru to sploh ni pomembno. "," Top ": 0.08480565371024736," left ": 0.014285714285714285," height ": 0.8586572438162544," width ": 0.9357142857142857}]">

Napredna serija
Napredna serija
Napredna serija
Napredna serija
Napredna serija
Napredna serija

PROSIMO, DA NAREDITE VPRAŠANJA, KI MORATE IMATI NA MOJ BLOG: https://tamsanh.com/blog/2008/07/11/batch-tutorial-3-advanced-batch/ Ne obiskujem več navodil in hitreje boste Hej fantje! Tam Nguyen tukaj. Dolgo je prihajalo, zdaj pa je tukaj! Predstavljam vam naslednji del mojih paketnih vaj! Morda ste (ali pa tudi ne) prebrali moja druga navodila: Osnove Batch -a Nekoliko bolj napredna serijaTa Instructable si izposoja nekatere elemente iz prvih dveh navodil. Namreč: ECHO CommandCD CommandDIR Command Če niste prebrali drugih dveh, predlagam, da te ukaze pregledate takoj. Počakal bom tukaj. V redu! Do konca tega Instructable boste intimni z: START CommandSET CommandIF CommandGOTO Commanda> in >> Parametri S temi ukazi boste lahko ustvarili dinamične paketne datoteke, ki se lahko spreminjajo glede na vnos uporabnika, in ustvarite in razširite. Torej odprimo tisti dober ukazni poziv in začnite! Zaženite-> cmd Druga možnost je, da odprete: Start-> Program Files-> Accessories-> Command Prompt Moje razlage v tem navodilu so se nekoliko podaljšale, zato sem nekatere ukaze razdelil na več kot eno stran predvsem zaradi estetskih namenov; Všeč mi je bilo videti slike med branjem besedila, ne da bi se morali pomikati navzgor in navzdol. Običajno je po vsakem izrezku kode slika. Uživajte!

1. korak: Ukaz START

Ukaz START
Ukaz START
Ukaz START
Ukaz START
Ukaz START
Ukaz START
Ukaz START
Ukaz START

Ukaz START je lep, majhen ukaz, ki začne stvari! To je preprost ukaz, ki nam bo pomagal ogreti, preden pridemo do težjih ukazov. Parametri ukaza so točno takšni, kot mislite, da so.

ZAČNITE ThingToBeStarted.exePrecej preprosto

ZAČNITE WMPlayer.exeNe samo, da lahko zaženete.exe, lahko vnesete tudi spletno mesto in se odpre v privzetem brskalniku

ZAČNITE www. Instructables.comPrecej enostavno, kajne? V redu. Zdaj pa pojdimo na pravo meso ukaza Instructable: SET.

2. korak: Ukaz SET - Teorija nizov (1/4)

Ukaz SET - teorija nizov (1/4)
Ukaz SET - teorija nizov (1/4)
Ukaz SET - teorija nizov (1/4)
Ukaz SET - teorija nizov (1/4)

Ukaz SET: Definicija spremenljivke. Ah. Spremenljivke. Razvijačeva ambrozija. Spremenljivke so deli pomnilnika, ki so … napačni, spremenljivi. Brez IF -jev in NE -ov o tem! (lol, oprosti). V redu! Torej, kako deluje ta otrok? Zelo preprosto so parametri ukaza SET: SET VariableName = Variable ValueSET bo sam ustvaril spremenljivke niza.

SET TestVS = Preizkusni spremenljivi niz!V tem primeru smo samo shranili vrednost "Test Variable String!" v spremenljivko TestVS. No, to je vse zabava in igre, ampak kako pridobimo vrednost spremenljivke? Uporabljamo %. Samo dodajte % okoli imena spremenljivke

ECHO %TestVS %V redu, ampak kaj še lahko naredi?

3. korak: Ukaz SET - Mr. Math (2/4)

Ukaz SET - Mr. Math (2/4)
Ukaz SET - Mr. Math (2/4)
Ukaz SET - Mr. Math (2/4)
Ukaz SET - Mr. Math (2/4)
Ukaz SET - Mr. Math (2/4)
Ukaz SET - Mr. Math (2/4)

Ali zna delati matematiko? No, naredimo preprosto serijo, da jo preizkusimo.

@ECHO OFFSET Test = 1ECHO%Test%SET Test =%Test%-1ECHO%Test%PAUSEVau, kaj se je zgodilo? To bi moralo delovati! Počakaj malo … kaj je bilo z ukazi SET, ki ustvarjajo samo nize? Ukaz SET bo sam ustvaril samo spremenljivko niza, kar pomeni, da bo ustvaril najbolj dobesedno interpretacijo vrednosti. Ne misli, da je "1 - 1" enako "0", misli, da je "1 - 1" enako "1 - 1." Torej, kako to spremeniti? Želimo, da spremenljivka ni neposredno kopirana, ampak ovrednotena. To pomeni, da ga želimo pretvoriti iz niza v izraz! Zelo enostavna sprememba, preprosto dodajte a /a ukazu SET. Tukaj je preprosta paketna datoteka, da jo vidite v akciji, ali pa jo preprosto vnesete v priročnik za ukazni poziv. Predlagam slednje; je veliko hitrejši in koda ni preveč zapletena, če pa resnično želite paketno datoteko, je tukaj

@ECHO OFFSET /a Test = 2+2ECHO %Test %PAUSEFantastično! To je odlično izrazilo. Zdaj vemo, kaj je treba spremeniti v našem "matematičnem testu.bat"

@ECHO OFFSET /a Test = 1ECHO%Test%SET /a Test =%Test%-1ECHO%Test%PAUSEV redu. Zato zaženimo! Super! Delalo je odlično! Kaj pa naslednje?

4. korak: Ukaz SET - vnos uporabnika (3/4)

Ukaz SET - vnos uporabnika (3/4)
Ukaz SET - vnos uporabnika (3/4)
Ukaz SET - vnos uporabnika (3/4)
Ukaz SET - vnos uporabnika (3/4)
Ukaz SET - vnos uporabnika (3/4)
Ukaz SET - vnos uporabnika (3/4)

SET ima tudi možnost, da uporabnika pozove k vnosu. Z dodajanjem /p parametrom SET ga spremeni iz običajnega nastavitelja spremenljivk v nastavitelja spremenljivk, ki ga upravlja uporabnik.

SET /p UDefine =S tipko /p se program dejansko ustavi in čaka na vnos uporabnika. Ampak počakajte, ne vidim parametra /a, ali to pomeni, da je spremenljivka samo niz? No, nekako tako. /P parametrov popolnoma zanika /a, in če poskusite, preprosto dobite napako manjkajoči operand. To pomeni, da spremenljivka, ki jo določi uporabnik, ne bo mogla ovrednotiti izrazov. Torej, kaj lahko naredim? No, tukaj je trik, ki sem ga pomislil, ki ga lahko uporabimo. Ukaz SET ne omogoča vse hkratne uporabe parametrov /p in /a, kajne? No, kaj pa z zaporedno uporabo parametrov /a in /p? Ahhh … lušni škornji

@ECHO OFFECHO Kalkulator različica 1.0ECHO. SET /p UDefine = SET /a UDefine =%UDefine%ECHO = ECHO%UDefine%ECHO. PAUSEDober kalkulator imaš. Če tega še niste ugotovili, je {{{ECHO.}}} Prazna vrstica. Ali ni to kul-kul?

5. korak: Ukaz SET - Več kot ustreza očesu (4/4)

Ukaz SET - Več kot ustreza očesu (4/4)
Ukaz SET - Več kot ustreza očesu (4/4)
Ukaz SET - Več kot ustreza očesu (4/4)
Ukaz SET - Več kot ustreza očesu (4/4)
Ukaz SET - Več kot ustreza očesu (4/4)
Ukaz SET - Več kot ustreza očesu (4/4)

Na tej točki se lahko zdi, da so spremenljivke ukaza SET dobre samo za nize in izraze. Ni res. Spremenljivke so pravzaprav zelo prilagodljive in niso omejene le na ECHO. Ali ste poskusili samo vnesti spremenljivko?

SET Test = Navodila za testiranje%Test%Kakšna čudna napaka … piše, da ukaz "Instructables" ni prepoznan, ne da % Test % ni imel sintakse. To pomeni, da DOS obravnava vsako spremenljivko, kot da je bila ročno vnesena. No, kaj pa če

SET Test = START cmd.exe%Test%Odlično! Uspelo je! DOS obravnava vsako spremenljivko tako, kot jo je vnesel uporabnik, in jo ustrezno zažene. Tukaj je zanimiva koda: (Samo kopiraj/prilepi; to je nekoliko dolgočasno.

@ECHO OffSET spremenljivka1 = spremenljivka ECSET2 = spremenljivka HSET3 = O spremenljivka CSET4 = ooSET spremenljivka5 = l! Spremenljivka ECHO%1 %% spremenljivka 2 %% spremenljivka 3 %% spremenljivka 4 %% spremenljivka 5%ECHO.%Spremenljivka 1 %% spremenljivka2 %% %Spremenljivka 5%premorAli ni to lepo? Vsaka spremenljivka vsebuje dve črki celotnega sporočila (razen spremenljivke 2). Če spremenite spremenljivke, se vsaka črka sešteje in konča celoten ukaz ECHO Cool! Ukaz SET je eden bolj zapletenih in zmogljivih ukazov Slovar DOS.

6. korak: Ukaz IF - vsi so enaki (1/2)

Ukaz IF - vsi so enaki (1/2)
Ukaz IF - vsi so enaki (1/2)
Ukaz IF - vsi so enaki (1/2)
Ukaz IF - vsi so enaki (1/2)
Ukaz IF - vsi so enaki (1/2)
Ukaz IF - vsi so enaki (1/2)

Ta klasični pogojni operand. Osnovni, a zmogljivi kljub temu. Za tiste, ki še nikoli niste programirali, se sliši ukaz IF. Če se izraz v skladnji izkaže za resničnega (ali NI resničnega), se izvede naslednje zaporedje ukazov.

IF%spremenljivka 1%==%spremenljiva2%ECHO Ta del je izvedenali če imate več kot eno skladnjo

@ECHO OFFIF%spremenljiva1%==%spremenljiva2%(ECHO Ta del je izveden. ECHO Tako je tudi to.) ELSE (ECHO Če spremenljivka1 ne & apost = spremenljivka 2, se to zgodi. ECHO in tudi to se zgodi.)Opomba: Posebna postavitev oklepajev ni zato, ker ne verjamem v organizirano kodo, ampak zato, ker če niso na teh mestih, celoten delček IF ne bo deloval. Če je pri vaši kodi IF prišlo do napake, je to najverjetneje zaradi oklepajev. Za zagon te serije sem dejansko uporabil sam ukazni poziv, tako da sem lahko nastavil spremenljivke, ne da bi mi bilo treba urejati številko IfVariableTest.bat krat.

7. korak: Ukaz IF - vendar sem večji od vas (2/2)

Ukaz IF - Ampak jaz sem večji od tebe (2/2)
Ukaz IF - Ampak jaz sem večji od tebe (2/2)
Ukaz IF - Ampak jaz sem večji od tebe (2/2)
Ukaz IF - Ampak jaz sem večji od tebe (2/2)
Ukaz IF - Ampak jaz sem večji od tebe (2/2)
Ukaz IF - Ampak jaz sem večji od tebe (2/2)

V redu, torej imaš lepo izjavo IF in vse, in preveriti, ali so spremenljivke enake ali ne, je lepo in vse, vendar ne ustreza čisto vsem. Želim, da se nekaj zgodi, če je spremenljivka1 manjša od druge spremenljivke! Za tiste od nas programerjev vem, da se to zdi preprosta naloga. Naredite vse, kar počnejo vsi drugi programski jeziki! Držite svoje konje kavbojske. Ne tako hitro. Paketna datoteka ni samo vaš običajni programski jezik. Čeprav se zdi neumno, "" ne delujejo s paketnimi datotekami.

EQU - Equal - == NEQ - Not EqualLSS - Manj kot GTR - Večji ThanLEQ - Manj ali enak ToGEQ - Večji ali enakTe operande samo postavite namesto primera ==

IF 32 GTR 3 ECHO To bo delovalo

@ECHO OFFIF 32 GEQ 32 (ECHO 32 je večji ali enak 32) DRUGO (ECHO 32 je vsekakor enako 32) PAUSEIF 32 LSS 32 (ECHO 32 je manj kot 32? Mislim, da ne.) ELSE (ECHO 32 je Ne manj kot 32. Konec zgodbe.) PAUSE

8. korak: Ukaz GOTO

Ukaz GOTO
Ukaz GOTO
Ukaz GOTO
Ukaz GOTO
Ukaz GOTO
Ukaz GOTO

Ukaz GOTO. Deluje točno tako, kot pravi; gre za oznako v skriptu paketne datoteke. Če želite uporabiti ta ukaz, morate najprej imeti oznako. Oznake izgledajo takole:

: Oznaka1To je preprosto dvopičje pred vrsto razmika črk in/ali številk. Ukaz GOTO je strukturiran tako

GOTO Oznaka1Tako enostavno je! Če dobro pomislim, nisem ravno prepričan, zakaj tega nisem dal v rahlo napredno serijo.

@ECHO OFF: RepeatMeECHO To se ponovi, razen če pritisnete "CTRL-C" GOTO RepeatMeMimogrede, paketna datoteka govori resnico. CTRL-C je univerzalni premor in poziv za prekinitev. CTRL-S je preprosto premor. Toda zapiranje okna deluje prav tako. GOTO lahko preskoči ali spremeni kodo

GOTO TurnEOffGOTO MultipleGotoECHO Ta ECHO bo preskočen.:MultipleGotoGOTO 3: ENDPAUSEEXIT: 1ECHO EndGOTO END: 3ECHO To se bo najprej prikazalo GOTO 2: TurnEOff@ECHO OFFGOTO MultiGoto: nazadnje 1Zgornja koda je bila namenoma zmedeno strukturirana, da bi poudarila sposobnost GOTO -ja, da skoči po kodi.

9. korak:> Parameter (1/2)

Primer izvajanja
Primer izvajanja

Parameter (1/2) "src =" https://content.instructables.com/ORIG/FBH/P5XV/F3JESWI8/FBHP5XVF3JESWI8-j.webp

Primer izvajanja
Primer izvajanja

Parameter (1/2) "src =" https://content.instructables.com/ORIG/FIX/9BXW/F3JESWI5/FIX9BXWF3JESWI5-j.webp

Primer izvajanja
Primer izvajanja

Parameter (1/2) "src =" https://content.instructables.com/ORIG/FHZ/92ZS/F3JESWI7/FHZ92ZSF3JESWI7-j.webp

Sklep: Končne opombe
Sklep: Končne opombe

Parameter (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} "> Ta naslednji bit v resnici ni" ukaz ", temveč dodana sintaksa v drugo naredi. Vzame izhod določenega ukaza in ga lahko zapiše v besedilno datoteko. Lažje je razložiti, če ga najprej vidite v akciji. Njegova sintaksa je:

Ukaz> Ime datotekeV redu, recimo, da smo v določenem imeniku. Nato uporabimo ukaz DIR, ki bi, če bi prebrali Osnove paketa, vedel, da prikazuje vsebino vašega trenutnega imenika

C: / Users / Neo \> DIRObičajno bi izšel

Glasnost v pogonu C je HP-jeva serijska številka obsega BC7E-E26C Imenik C: / Users / Neo2007-30-06 11:14.2007-30-06 11:14 AM..2007-17-03 18:41.idlerc2007-19-02 03:14 PM Kontakti2007-19-06 22:44 Namizje2007-29-06 08:47 Dokumenti2007-19-06 10:35 AM Prenosi2007-19-02 15:14 Priljubljeni02/19/ 2007 15:14 Povezave2007-12-05 16:01 PM Glasba2007-30-06 01:20 AM Slike 04.07.2007 15:08 Shranjene igre2007-19-02 15:14 Iskanja2007-01-03 07:23 PM 242, 947 Test Record.wma2007-19-06 10:39 AM Videos2007-18-06 09:57 AM 1, 324, 574 wp_screenprint_mc.pdf2007-18-06 09:59 73, 996, 533 wp_tshirt_full.mp4 4 Datoteke 75, 564, 054 bajtov 14 Dir (-i) 132, 927, 537, 152 bajtov brezplačnoČe pa k temu dodamo> in

C: / Users / Neo / DIR> DIRContents.txtNe dobimo izhoda, ampak namesto tega dobimo novo besedilno datoteko z imenom DIRContents.txt, ki vsebuje izhod! Kul! Ampak počakaj, problem je! V isti datoteki želim imeti več izhodov, vendar jih moj> kar naprej prepisuje in ne dodaja! Kaj naj naredim?

10. korak: >> Parameter (2/2)

Parameter (2/2) "src =" https://content.instructables.com/ORIG/FG4/B58B/F3JESWIJ/FG4B58BF3JESWIJ-j.webp

Parameter (2/2) "src =" https://content.instructables.com/ORIG/F05/GZB1/F3JESWIK/F05GZB1F3JESWIK-j.webp

Parameter (2/2) "src =" https://content.instructables.com/ORIG/F93/Q7VS/F3JESWL2/F93Q7VSF3JESWL2-j.webp

Parameter (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} ">

Parameter (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} "> No, vesel sem, da ste vprašali. Za to je >> parameter! >> je tako kot>, vendar namesto, da bi določeno datoteko popolnoma prepisali, jo dodamo! Poskusimo.

DIR >> DIRContents.txtLepo! Delalo odlično! Zato počakaj. Ali to pomeni, da lahko v besedilno datoteko napišem kar hočem? Želim poskusiti

Paket je super> Awesome.txtKaj? Zakaj to ni delovalo? To je zato, ker parameter zapisuje samo izpis legitimnih ukazov, ne pa kar koli, kar vnesete. Toda to je problem, ki ga preprosto rešimo. Ne pozabite, da parametri beležijo izhod ukazov. Kateri ukaz ima izhod, ki ga lahko nadzorujemo? Ukaz ECHO

ECHO Batch Is Awesome> Awesome.txtECHO I & aposm sem tako vesel, da to vem. >> Awesome.txtJuhu! Zapomni si. >> doda izhod v naslednjo vrstico datoteke.

11. korak: Primer izvajanja

V redu. Pa dajmo vse skupaj! Tukaj je nekaj vzorčnih kod, ki sem jih naredil, ki uporabljajo ukaze, ki sem vam jih pokazal v tem navodilu. Ta koda bo spremenljivki nenehno dodajala 1 in rezultat prikazovala v nedogled.

@ECHO OFFSET /a num = 1: Ponovi ECHO%num%SET /a num =%num%+1GOTO PonoviTa koda se bo CMD.exe zagnala 5 -krat

@ECHO OFFSET /a RepeatNum = 5: OpenIF%RepeatNum%== 0 GOTO EndSTART CMD.exeSET /a RepeatNum =%RepeatNum%-1GOTO Open: EndTa koda bo ustvarila paketno datoteko v C: / Users / Neo in jo zagnala

@ECHO OFFCHDIR C: / Users / NeoECHO @ECHO OFF> Hello.batECHO ECHO Pozdravljeni! >> Hello.batECHO ECHO I & aposm v vašem pogonu C! >> Hello.batECHO PAUSE >> Hello.batC: / Users / Neo / Hello. batPauseTo je majhen paket iger. Številko morate uganiti

@ECHO OFFSET /a GuessNum = 0SET /a Answer =%RANDOM%ECHO Uganite, na katero številko pomislim.:RetrySET /p Ugani = IF%Guess%LSS%Answer%ECHO Moja številka je višja. IF%Guess%GTR%Answer %ECHO Moja številka je nižja. IF%Ugani%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Poskusi znova: ENDECHO Prav ste! Odgovor je bil %Answer %ECHO To je trajalo %GuessNum %Guesses. ECHO. PAUSEIn ta mi je zelo všeč. Če niste previdni, pa vam lahko to precej hitro uide, odvisno od sposobnosti računalnika. Ta datoteka naredi za nedoločen čas ustvarjanje oštevilčenih besedilnih datotek v imeniku, imenovanem lolnumbers. Vsaka od teh besedilnih datotek vsebuje DIR imenika lolnumbers. Stvar je v tem, da je imenik nenehno poln in poln besedilnih datotek, zato je vsaka zaporedna besedilna datoteka večja od zadnje. Rezultat tega je mapa, katere skupna velikost je vsako sekundo vedno večja

@ECHO OFFSET /a num = 1MKDIR lolnumbersCD lolnumbers CD: RestartDIR>%num%.txtSET /a num+= 1GOTO RestartTo so precej osnovne kode. Eksperimentirajte z njimi do mile volje.

12. korak: Zaključek: Končne opombe

Uf. V tem navodilu smo veliko zajeli. Ta je, trikrat daljši od mojega zadnjega. Upam, da vam bo všeč! Le nekaj opomnikov, preden grem. Ne pozabite: pri nastavitvi spremenljivke nikoli ne postavljajte presledka med spremenljivko in njeno vrednostjo.

SET spremenljivka1 = VrednostZaradi dodatnega prostora bo vaša spremenljivka prazna. NO

SET spremenljivka1 = VrednostTudi več IF -jev. Ne pozabite pravilno oblikovati oklepaja: DA

ČE 1 == 1 (ECHO ena je ena!) DRUGA (ECHO Nekaj & aposs narobe s tem programom.)NE

ČE 1 == 1 (ECHO ena je ena!) DRUGA (ECHO Nekaj & aposs narobe s tem programom.)Obstajajo tudi vgrajene spremenljivke

%CD %% DATE %% TIME %% RANDOM%% CD% Razširi se na trenutni imenik. V bistvu sta pot za prvima>% DATE% in% TIME% datum in čas.% RANDOM% daje naključno število med 0 in 32767. Obsega ni mogoče spremeniti. In to je v bistvu to! Upam, da ste uživali v tem navodilu, zelo sem se potrudil. Upam, da bo to nadomestilo 10 -mesečno odsotnost. Zdaj slaba novica. V naslednjih nekaj mesecih bom imel nekaj težav pri odgovarjanju na vsa vprašanja, ker bom zunaj države. Če pa imate vprašanje, pustite komentar vsem. Če vseeno dobim dostop do računalnika, se bom zagotovo odzval, vendar mislim, da to ne bo potrebno; Instructables je prijazna skupnost in prepričan sem, da vam bo nekdo pomagal pri vaših težavah.

Priporočena: