Indholdsfortegnelse:

Avanceret batch: 12 trin
Avanceret batch: 12 trin

Video: Avanceret batch: 12 trin

Video: Avanceret batch: 12 trin
Video: ✨Swallowed Star EP 91 - 100 Full Version [MULTI SUB] 2024, November
Anonim

men det er ok, bare brug kommandoen CD eller CHDIR til at ændre bibliotek. Men det gør ikke rigtig noget i denne sag. "," Top ": 0.08480565371024736," venstre ": 0.014285714285714285," højde ": 0.8586572438162544," bredde ": 0.9357142857142857}]">

Avanceret batch
Avanceret batch
Avanceret batch
Avanceret batch
Avanceret batch
Avanceret batch

RIGTIGE SPØRGSMÅL, DU KAN HA TIL MIN BLOG: https://tamsanh.com/blog/2008/07/11/batch-tutorial-3-advanced-batch/Jeg besøger ikke instruktører mere, og du får en hurtigere svar på den måde. Hej fyre! Tam Nguyen her. Det har været længe siden, men det er her nu! Jeg præsenterer for dig den næste del af mine batchvejledninger! Du har (eller måske ikke) læst mine andre instruktioner: Basics of BatchSlyly More Advanded Batch Denne instruktør låner nogle elementer fra de to første instruktioner. Nemlig: ECHO CommandCD CommandDIR CommandIf du ikke har læst de to andre, foreslår jeg, at du ser hurtigt over disse kommandoer. Jeg venter her. Ok! Ved afslutningen af denne Instructable vil du være intim med: START CommandSET CommandIF CommandGOTO Commandand> og >> Parameters Med disse kommandoer vil du være i stand til at lave dynamiske batchfiler, som kan ændres i henhold til brugerinput, og opret og udvid. Så lad os åbne det gode kommandoprompt og komme i gang! Kør-> cmd Alternativt kan du gå til: Start-> Programfiler-> Tilbehør-> Kommandoprompt Mine forklaringer i denne instruktive blev lidt lange, så jeg har delt nogle kommandoer op i mere end én side hovedsageligt til æstetiske formål; Jeg kunne godt lide at se billederne, mens jeg læste teksten uden at skulle rulle op og ned. Tommelfingerregel for billedvisning; Normalt efter hvert kodestykke er der et billede. Nyd!

Trin 1: START -kommando

START -kommando
START -kommando
START -kommando
START -kommando
START -kommando
START -kommando
START -kommando
START -kommando

START -kommandoen er en fin lille kommando, der starter ting! Det er en simpel kommando, og vil hjælpe os med at varme op, før vi kommer til de hårdere kommandoer. Kommandoens parametre er præcis, hvad du tror, de er.

START ThingToBeStarted.exeRet simpelt

START WMPlayer.exeDu kan ikke kun STARTE.exe, du kan også skrive et websted ind, og det åbnes i din standardbrowser

START www. Instructables.comRet let, ikke? Okay. Lad os nu gå videre til det rigtige kød fra Instructable: SET Command.

Trin 2: SET -kommando - strengteori (1/4)

SET Kommando - strengteori (1/4)
SET Kommando - strengteori (1/4)
SET Kommando - strengteori (1/4)
SET Kommando - strengteori (1/4)

SET -kommandoen: Variable Definer. Ah. Variabler. Udviklerens ambrosia. Variabler er bit af hukommelse, der er … fejl, variabel. Ingen IF'er OG'er eller IKKE om det! (lol, undskyld). Okay! Så hvordan fungerer denne baby? Meget simpelt er parametrene for SET -kommandoen: SET VariableName = Variable ValueSET vil i sig selv oprette strengvariabler.

SET TestVS = Test variabel streng!I dette tilfælde lagrede vi bare værdien "Test variabel streng!" i variablen TestVS. Jamen, det er alt sammen sjov og spil, men hvordan henter vi variabelværdien? Vi bruger %. Bare tilføj % omkring variabelnavnet

ECHO %TestVS %Ok sejt, men hvad kan det ellers gøre?

Trin 3: SET Command - Mr. Math (2/4)

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

Kan den lave matematik? Lad os lave et simpelt parti for at teste det.

@ECHO OFFSET Test = 1ECHO%Test%SET Test =%Test%-1ECHO%Test%PAUSEØv, hvad skete der? Det skulle have virket! Vent lidt … hvad var det med SET -kommandoer, der kun lavede strenge? Ja. SET -kommandoen i sig selv vil kun oprette en strengvariabel, hvilket betyder, at den vil skabe den mest bogstavelige fortolkning af værdien. Det tænker ikke på "1 - 1", der svarer til "0", det tænker på "1 - 1", der svarer til "1 - 1." Så hvordan ændrer vi det? Vi vil have, at variablen ikke kopieres direkte, men evalueres. Det betyder, at vi vil gøre det fra en streng til et udtryk! En meget let ændring, bare tilføj a /a til SET -kommandoen. Her er en simpel batchfil for at se den i aktion, eller du kan bare skrive den i kommandopromptmanualen. Jeg foreslår det sidste; det er meget hurtigere, og koden er ikke for kompliceret, men hvis du virkelig vil have batchfilen, er den her

@ECHO OFFSET /a Test = 2+2ECHO %Test %PAUSEFantastisk! Det udtrykte det perfekt. Nu ved vi, hvilke ændringer der skal foretages i vores matematiske test. Bat

@ECHO OFFSET /a Test = 1ECHO%Test%SET /a Test =%Test%-1ECHO%Test%PAUSEOkay. Så lad os køre det! Fantastisk! Det fungerede perfekt! Men hvad så?

Trin 4: SET -kommando - brugerindgang (3/4)

SET -kommando - brugerindgang (3/4)
SET -kommando - brugerindgang (3/4)
SET -kommando - brugerindgang (3/4)
SET -kommando - brugerindgang (3/4)
SET -kommando - brugerindgang (3/4)
SET -kommando - brugerindgang (3/4)

SET'et har også mulighed for at bede brugeren om input. Ved at tilføje /p til SET-parametrene, transformerer det det fra en normal variabel-setter til en brugerstyret variabel-setter.

SET /p UDefine =Med /p stopper programmet faktisk og venter på brugerens input. Men vent, jeg kan ikke se a /a parameter, betyder det, at variablen kun er en streng? Nå, sådan. Parameternes /p negerer helt /a, og hvis du prøver det, får du simpelthen en manglende operandfejl. Det betyder, at den brugerdefinerede variabel ikke vil være i stand til at evaluere udtryk. Så hvad kan man gøre? Nå, her er et vanskeligt trick, som jeg tænkte på, som vi kan bruge. SET -kommandoen gør ikke al den samtidige brug af parametre /p og /a, korrekt? Nå, hvad med den sekventielle brug af parametrene /a og /p? Ahhh … dine listige støvler

@ECHO OFFECHO lommeregner version 1.0ECHO. SET /p UDefine = SET /a UDefine =%UDefine%ECHO = ECHO%UDefine%ECHO. PAUSEDejlig lommeregner, du er der. Hvis du ikke har fundet ud af det nu, er {{{ECHO.}}} En tom linje. Er det ikke fedt?

Trin 5: SET Command - More Than Meets Eye (4/4)

SET Command - More Than Meets Eye (4/4)
SET Command - More Than Meets Eye (4/4)
SET Command - More Than Meets Eye (4/4)
SET Command - More Than Meets Eye (4/4)
SET Command - More Than Meets Eye (4/4)
SET Command - More Than Meets Eye (4/4)

På dette tidspunkt kan det se ud til, at variablerne i SET -kommandoen kun er gode til strenge og udtryk. Ikke sandt. Variablerne er faktisk meget meget fleksible og er ikke kun begrænset til ECHO'er. Har du prøvet bare at skrive en variabel alene?

SET Test = Instructables%Test%Hvilken underlig fejl … det siger, at kommandoen "Instructables" ikke genkendes, ikke at % Test % ikke havde nogen syntaks. Så det betyder, at DOS behandler hver variabel, som om den var skrevet i hånden. Tja, hvad nu hvis

SET Test = START cmd.exe%Test%Fantastisk! Det fungerede! DOS behandler hver variabel, som den var skrevet af brugeren, og kører den i overensstemmelse hermed. Her er en interessant kode: (Bare kopier/indsæt; det er lidt kedeligt.

@ECHO OffSET Variabel1 = ECSET Variabel2 = HSET Variabel3 = O CSET Variabel4 = ooSET Variabel5 = l! ECHO%Variabel1 %% Variabel2 %% Variabel3 %% Variabel4 %% Variabel5%ECHO.%Variabel1 %% Variabel2 %% Variabel3 %% Variabel4% %Variabel5%PauseEr det ikke pænt? Hver variabel indeholder to bogstaver i hele meddelelsen (undtagen Variabel2), og sætter variablerne i rækkefølge, tilføjer hvert bogstav og afslutter hele kommandoen i ECHO Cool! SET -kommandoen er en af de mere komplicerede og kraftfulde kommandoer i DOS ordbog.

Trin 6: IF Command - Alle er lige (1/2)

IF Command - Alle er lige (1/2)
IF Command - Alle er lige (1/2)
IF Command - Alle er lige (1/2)
IF Command - Alle er lige (1/2)
IF Command - Alle er lige (1/2)
IF Command - Alle er lige (1/2)

Den klassiske betingede operand. Grundlæggende, men kraftfuld alligevel. For dem, der aldrig har programmeret før, er IF-kommandoen præcis, hvordan den lyder. Hvis et udtryk i syntaksen viser sig at være sandt (eller IKKE sandt), vil den næste række af kommandoer blive udført. Den grundlæggende kommandolinje går sådan her:

IF%variable1%==%variable2%ECHO Denne del udføreseller hvis du har mere end én syntaks

@ECHO OFFIF%variable1%==%variable2%(ECHO Denne del udføres. ECHO Så er dette.) ELSE (ECHO Hvis variabel1 ikke & apost = variabel 2, sker dette. ECHO og dette sker også.)Bemærk: Den særegne placering af parenteser er ikke fordi jeg ikke tror på organiseret kode, men fordi hvis de ikke er på disse steder, fungerer hele IF -kodestykket ikke. Så hvis der er en fejl med din IF -kode, er det sandsynligvis på grund af parentesen. For at køre denne batch brugte jeg faktisk selve kommandoprompten, så jeg kunne indstille variablerne uden at skulle redigere IfVariableTest.bat -multiple gange.

Trin 7: IF Command - Men jeg er større end dig (2/2)

IF Command - Men jeg er større end dig (2/2)
IF Command - Men jeg er større end dig (2/2)
IF Command - Men jeg er større end dig (2/2)
IF Command - Men jeg er større end dig (2/2)
IF Command - Men jeg er større end dig (2/2)
IF Command - Men jeg er større end dig (2/2)

Ok, så du har en god IF -erklæring og alt, og at kontrollere, om variabler er ens eller ej, er rart og alt, men passer ikke helt til regningen. Jeg vil have noget til at ske, hvis variabel1 er mindre end den anden variabel! For os programmører ved jeg, at dette virker som en simpel opgave. Bare gør hvad alle andre programmeringssprog gør! Hold godt fast i dine heste cowboy. Ikke så hurtigt. En batchfil er ikke kun din normale programmeringssprog. Dumt som det kan virke fungerer "" ikke med Batch -filer.

EQU - Lige - == NEQ - Ikke ligeLSS - Mindre ThanGTR - Greater ThanLEQ - Mindre end eller lig ToGEQ - Større end eller lig medSæt bare disse operander i stedet for == eksemplet

IF 32 GTR 3 ECHO Dette virker

@ECHO OFFIF 32 GEQ 32 (ECHO 32 er større end eller lig med 32) ELSE (ECHO 32 er bestemt lig med 32) PAUSEIF 32 LSS 32 (ECHO 32 er mindre end 32? Jeg tror ikke.) ELSE (ECHO 32 er Ikke mindre end 32. Historiens slutning.) PAUSE

Trin 8: GOTO Command

GOTO kommando
GOTO kommando
GOTO kommando
GOTO kommando
GOTO kommando
GOTO kommando

GOTO -kommandoen. Den gør præcis, hvad den siger; den går til en etiket i batchfil -scriptet. For at bruge denne kommando skal du først have en etiket på plads. Etiketter ser sådan ud:

: Etiket 1Det er simpelthen et kolon før en række med bogstaver og/eller tal uden mellemrum. GOTO-kommandoen er struktureret sådan

GOTO Label 1Det er så let! Når jeg tænker på det, er jeg ikke rigtig sikker på, hvorfor jeg ikke lagde dette i lidt avanceret batch. Under alle omstændigheder kan denne kommando bruges til at gentage en batchfil ved simpelthen at GOTO en etiket, der udfører GOTO -kommandoen igen

@ECHO OFF: RepeatMeECHO Dette gentages, medmindre du trykker på "CTRL-C" GOTO RepeatMeBatchfilen taler i øvrigt sandheden. CTRL-C er den universelle pause og prompt for opsigelse. CTRL-S er simpelthen Pause. Men at lukke vinduet fungerer lige så godt. GOTO kan også springe over eller omorganisere din kode

GOTO TurnEOffGOTO MultipleGotoECHO Denne ECHO springes over.:MultipleGotoGOTO 3: ENDPAUSEEXIT: 1ECHO EndGOTO END: 3ECHO Dette vises førstGOTO 2: TurnEOff@ECHO OFFGOTO MultipleGoto: 2ECHO Dette er andet, selvom det 1Ovenstående kode blev struktureret forvirrende med vilje for at understrege GOTO's evne til at springe rundt i koden.

Trin 9:> Parameter (1/2)

Eksempel Implementering
Eksempel Implementering

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

Eksempel Implementering
Eksempel Implementering

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

Eksempel Implementering
Eksempel Implementering

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

Konklusion: Endelige noter
Konklusion: Endelige noter

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

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

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

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

Parameter (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300' %} "> Denne næste bit er ikke rigtig en 'kommando', men snarere en tilføjet syntaks til andre Det gør det, det tager Output af en bestemt kommando og kan skrive det ind i en tekstfil. Det er lettere at forklare, hvis du først ser det i aktion. Syntaksen er:

Kommando> FilnavnOk, så lad os sige, at vi er i et bestemt bibliotek. Vi bruger derefter DIR -kommandoen, som hvis du læser det grundlæggende i batch, ville du vide, at det viser indholdet af din nuværende bibliotek

C: / Brugere / Neo \> DIRNormalt ville output

Lydstyrke i drev C er HP Volume Serienummer er BC7E-E26C Directory over C: / Users / Neo2007-30-06 11:14.2007-30-06 11:14..2007-17-03 18:41.idlerc2007-19-02 15:14 Kontakter2007-19-06 22:44 Desktop2007-29-06 08:47 Dokumenter2007-19-06 10:35 Downloads2007-19-02 15:14 Favoritter02/19/ 2007 15:14 Links2007-12-05 16:01 Musik2007-30-06 01:20 Billeder2007-07-04 15:08 Gemte spil 2007-19-02 15:14 Søgninger2007-01-03 07:23 PM 242, 947 Testrekord. Wma2007-19-06 10:39 Videoer2007-18-06 09:57 1, 324, 574 wp_screenprint_mc.pdf2007-18-06 09:59 73, 996, 533 wp_tshirt_full.mp4 4 Fil (er) 75, 564, 054 bytes 14 Dir (s) 132, 927, 537, 152 bytes gratisMen hvis vi tilføjer> og til det

C: / Brugere / Neo / DIR> DIRContents.txtVi får ikke et output, men i stedet får vi en helt ny tekstfil ved navn DIRContents.txt, der har Output i den! Coolness! Men vent, der er et problem! Jeg vil gerne have flere output i den samme fil, men min> bliver ved med at overskrive den og ikke tilføje den! Hvad skal jeg gøre?

Trin 10: >> 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 | tilføj: 'auto = webp & frame = 1 & height = 300' %} ">

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

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

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

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

Parameter (2/2) "src =" {{file.large_url | tilføj: 'auto = webp & frame = 1 & height = 300' %} "> Godt, jeg er glad for, at du spurgte. Det er det, >> parameteret er til! >> er ligesom>, men i stedet for fuldstændig at overskrive den angivne fil tilføjer vi den! Så lad os prøve det.

DIR >> DIRContents.txtPænt! Virkede perfekt! Så vent. Betyder det, at jeg kan skrive alt, hvad jeg vil, i en tekstfil? Jeg vil prøve det

Batch er fantastisk> Awesome.txtHvad? Hvorfor virkede det ikke? Det er fordi parameteren kun skriver output fra legitime kommandoer, ikke bare alt hvad du skriver i. Men, dette er et problem, der simpelthen er løst. Husk, at parametrene registrerer output af kommandoer. Hvilken kommando har et output, som vi kan kontrollere? ECHO -kommandoen

ECHO Batch er fantastisk> Awesome.txtECHO Jeg er så glad for, at jeg ved det. >> Awesome.txtYay! Husk. >> tilføjer Output til den næste linje i filen.

Trin 11: Eksempelimplementering

Okay. Så lad os lægge det hele sammen! Her er nogle eksempler på koder, jeg har lavet, der bruger de kommandoer, jeg har vist dig i denne instruktive. Denne kode tilføjer 1 til en variabel løbende og sender resultatet på ubestemt tid.

@ECHO OFFSET /a num = 1: GentagECHO%num%SET /a num =%num%+1GOTO GentagDenne kode starter CMD.exe 5 gange

@ECHO OFFSET /a RepeatNum = 5: OpenIF%RepeatNum%== 0 GOTO EndSTART CMD.exeSET /a RepeatNum =%RepeatNum%-1GOTO Åben: SlutDenne kode opretter en batchfil i C: / Users / Neo og kører den

@ECHO OFFCHDIR C: / Users / NeoECHO @ECHO OFF> Hello.batECHO ECHO Hello! >> Hello.batECHO ECHO I & aposm i dit C Drive! >> Hello.batECHO PAUSE >> Hello.batC: / Users / Neo / Hello. batPauseDette er en lille game batch. Du skal gætte tallet

@ECHO OFFSET /a GuessNum = 0SET /a Answer =%RANDOM%ECHO Gæt hvad jeg tænker på.:RetrySET /p Gæt = IF%Gæt%LSS%Svar%ECHO Mit nummer er højere. IF%Gæt%GTR%Svar %ECHO Mit nummer er lavere. IF%Gæt%==%Svar%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Prøv igen: ENDECHO Du har ret! Svaret var %Svar %ECHO Det tog %GuessNum %Guesses. ECHO. PAUSEOg denne kan jeg meget lide. Hvis du ikke er forsigtig, kan det dog hurtigt gå ud af hånden afhængigt af din computers evne. Hvad denne fil gør, er at den på ubestemt tid opretter nummererede tekstfiler i et bibliotek kaldet lolnumbers. Hver af disse tekstfiler indeholder DIR for lolnumbers -biblioteket. Sagen er, at biblioteket konstant bliver fyldigere og fyldigere med tekstfiler, så hver på hinanden følgende tekstfil er større end den sidste. Resultatet af dette er en mappe, hvis samlede størrelse bliver større og større hvert sekund

@ECHO OFFSET /a num = 1MKDIR lolnumbersCD lolnumbers: RestartDIR>%num%.txtSET /a num+= 1GOTO GenstartDet er temmelig grundlæggende koder. Eksperimenter med dem til dit hjerte.

Trin 12: Konklusion: Endelige noter

Puha. Vi dækkede en masse i denne instruktive. Denne er faktisk 3 gange længere end min sidste. Jeg håber, at du vil nyde det! Bare et par påmindelser, før jeg går. Husk: Når du indstiller en variabel, må du aldrig sætte et mellemrum mellem variablen og dens værdi. JA:

SET variabel1 = værdiDen ekstra plads får din variabel til at være blank. NO

SET variabel1 = værdiOgså de flere IF'er. Husk at formatere Parentesen korrekt: JA

HVIS 1 == 1 (ECHO One Equals One!) ELSE (ECHO Noget og kan være forkert med dette program.)INGEN

HVIS 1 == 1 (ECHO One Equals One!) ELSE (ECHO Noget og kan være forkert med dette program.)Der er også indbyggede variabler

%CD %% DATE %% TIME %% RANDOM%% CD% Udvides til det aktuelle bibliotek. Grundlæggende er stien bag den første>% DATE% og% TIME% Dato og tid.% RANDOM% giver et tilfældigt tal mellem 0 og 32767. Intervallet kan ikke ændres, jeg tror ikke. Og det er i bund og grund det! Jeg håber, at du nød dette instruerbare, jeg arbejdede virkelig hårdt med det. Forhåbentlig vil det udgøre 10 måneders fravær. Nu de dårlige nyheder. Jeg vil have lidt problemer med at besvare eventuelle spørgsmål i de næste par måneder, fordi jeg er ude af landet. Men hvis du har et spørgsmål, skal du bare efterlade en kommentar hvem som helst. Hvis jeg får adgang til en computer, vil jeg helt sikkert svare, men jeg tror ikke, det er nødvendigt; Instructables er et venligt fællesskab, og jeg er sikker på, at nogen derude vil hjælpe dig i din situation.

Anbefalede: