Taula de continguts:

Fitxers per lots: alguns aspectes bàsics ..: 8 passos
Fitxers per lots: alguns aspectes bàsics ..: 8 passos

Vídeo: Fitxers per lots: alguns aspectes bàsics ..: 8 passos

Vídeo: Fitxers per lots: alguns aspectes bàsics ..: 8 passos
Vídeo: 8 Excel tools everyone should be able to use 2024, De novembre
Anonim
Fitxers per lots: alguns conceptes bàsics …
Fitxers per lots: alguns conceptes bàsics …

Aquest instructiu us ensenyarà alguns conceptes bàsics per escriure fitxers per lots i us mostrarà com crear un joc d’endevinalles numèriques amb un parell de girs, només per mantenir les coses interessants …

He après la major part de les meves habilitats de comandament i totes les meves escriptures per lots des d'Internet en general i Instuctables en particular. M’agradaria donar les gràcies a l’usuari Neodudeman d’Instructables pels seus fantàstics manuals d’escriptura per lots. Gràcies!

Pas 1: què és un fitxer per lots?

Què és un fitxer per lots?
Què és un fitxer per lots?

Bé, la majoria dels meus lectors probablement ja saben què és un fitxer per lots, però per si de cas …

Un fitxer per lots és simplement una col·lecció (lot) d’ordres MS-DOS que s’executen de manera seqüencial quan s’executa el fitxer per lots. Els fitxers per lots comencen com a fitxers.txt al bloc de notes i es converteixen en fitxers executables quan els deseu com a elements amb una extensió.bat. Bàsicament, tot el que feu és escriure un fitxer al Bloc de notes i després desar-lo com, per exemple, "instructable.bat". Una vegada que es col·loqui el fitxer.bat al final del nom del fitxer, apareixerà un fitxer nou i agradable, anomenat com l’heu anomenat, amb una icona d’aspecte engranatge agradable. D’acord, ara que ja sabem què són aquests fitxers per lots, comencem a escriure.

Pas 2: ordres bàsiques

Ordres bàsiques
Ordres bàsiques
Ordres bàsiques
Ordres bàsiques
Ordres bàsiques
Ordres bàsiques
Ordres bàsiques
Ordres bàsiques

Molt bé, haureu d’aprendre algunes ordres. Per tant, primer obriu el símbol del sistema MSDOS. Obriu la finestra inicial, feu clic a Executa, escriviu "cmd.exe" i, a continuació, feu clic a Executa. En primer lloc, analitzarem les variables. Les variables són nombres, paraules o altres coses que (una mica òbviament) varien. El símbol del sistema té una funció variable. Té algunes variables que ja estan definides, com ara TIME, DATE i algunes altres. La majoria de variables, però, les podeu configurar vosaltres mateixos. Feu clic a la finestra del símbol del sistema i escriviu: SET variable = random Realment no importa si escriviu o no majúscules a "SET", però m'agrada capitalitzar totes les meves ordres, especialment quan escriviu fitxers per lots. Simplement fa que sigui més fàcil saber què esteu fent. Ara premeu Intro. Bé per tu! Ja heu definit la vostra primera variable. Però, què en podem fer? a qui li importa si tot el que podem fer és establir la variable no? Bé, tal com resulta, podem fer molt més que això, però primer, només intentem que l’ordinador ens digui com es defineix la variable. D'acord, per aconseguir que l'ordinador llegeixi el valor d'una variable, escrivim el nom de la variable, en aquest cas, "variable" i posem el nom dins de% marques, així:% variable%. Seguiu endavant i escriviu-ho i premeu Intro:% variable% Error estrany, eh? L'ordinador va dir que "'variable' no es reconeix com a ordre intern o extern, programa operatiu o fitxer per lots." Llavors, per què va donar aquest error? Bé, bàsicament, va donar aquest error perquè el símbol del sistema tracta el valor d’aquesta variable com si l’haguéssiu escrit. Per tant, quan heu escrit% variable%, l'ordinador va pensar que li deia que executés l'ordre "aleatori". Viouslybviament, necessitem una altra cosa per veure el valor de la nostra variable. Aquí és on entra l’ordre ECHO. L’ordre ECHO simplement diu a l’indicador de comandes que faci eco, o digui, de qualsevol cosa que hàgiu escrit després d’ECHO. Per tant, si escrivim l’ordre ECHO abans de la nostra variable, hauríem d’obtenir el que volem: ECHO% variable% Allà! Ara tenim el que volem! L'ordinador imprimeix "a l'atzar". Viouslybviament, aquest era el valor que vam escriure per a la nostra variable, de manera que és el resultat que volíem. Al següent pas, aprendrem més sobre les variables i com les podem utilitzar.

Pas 3: utilitzar l'ordre SET i les variables

Utilitzant l'ordre SET i les variables
Utilitzant l'ordre SET i les variables
Utilitzant l'ordre SET i les variables
Utilitzant l'ordre SET i les variables

D’acord, ara que ja sabem quines són les variables, què més podem fer amb elles? Bé, podem fer matemàtiques, les podem utilitzar com a condicions per escriure programes i fitxers per lots, podem realitzar aritmètica bàsica, podem executar ordres i molt més. No aprofundirem en tot el que podeu fer amb les variables, però parlarem d’alguns aspectes importants de la funció de variació. En primer lloc, l’ordre SET només produeix variables de cadena. Això vol dir que no afegirà ni farà cap altra matemàtica. Si li diguéssiu a l’ordinador que afegís 1 a una variable amb un valor d’1, us donaria el valor 1 + 1. Si volem que realment afegeixi els dos números, hem de col·locar un "/ a" després de l'ordre SET. Per tant, escrivim: SET / a varible = (valor) Ara, suposem que volem posar una variable al nostre fitxer per lots que l’usuari proporcionarà. Potser voldríem fer-ho si calculéssim valors segons una fórmula o, en el nostre cas, si volem que l’usuari endevini un número que l’ordinador ha creat. Per generar una variable especificada per l'usuari, afegim a / p després de l'ordre SET i deixem l'àrea després = en blanc: SET / p variable = Allà! Una variable especificada per l'usuari. Si poséssim aquesta línia en un fitxer per lots, el lot s’executaria fins que arribés a aquesta línia i esperaria l’entrada de l’usuari abans de continuar. L’altra cosa interessant del / p és que nega completament el / a. Quan incloem a / p només podem ometre el / a. El següent que aprendrem és que produeix variables aleatòries. Si volem que l’ordinador triï un número aleatori per a una variable, simplement escrivim l’ordre SET, seguida de la variable i, a continuació, establim la variable a% RANDOM%. Una vegada més, no cal que sigui majúscula, però m’agrada fer-ho igualment. Per tant, escrivim: SET / a variable =% RANDOM% Obbviament, no és una variable especificada per l'usuari, de manera que incloem la / a. Guai! Ara sabem com produir un número aleatori. Però, fins a quin punt és aleatori? Bé, resulta que l’ordinador tria un número entre 0 i aproximadament uns 37.000. No estic segur de quin és el nombre exacte. Però, i si volem un nombre més petit? Suposem que, com en aquest document instructiu, volem un número manejable per a alguna cosa com un joc d’endevinalles? Bé, aquí és on entra l'ordre IF …

Pas 4: les ordres IF i GOTO. El poder a les mans de l’escriptor per lots

Els comandaments IF i GOTO. El poder a les mans de l’escriptor per lots
Els comandaments IF i GOTO. El poder a les mans de l’escriptor per lots

Per tant, volem produir un nombre manejable. Suposem que volem produir un número aleatori entre 1 i 20. D'acord, això és fàcil de dir, però el valor RANDOM tria un número entre 1 i 37, 000. Per a això utilitzarem IF. L’ordre IF diu bàsicament SI passa alguna cosa o SI alguna cosa és igual o no igual a un valor determinat, ALeshores feu AIXIS. Per tant, IF estableix ordres condicionals. Volem produir un número inferior a vint, però superior a un, òbviament, començarem dient a l’ordinador que triï un número aleatori, però després haurem de poder dir-li que en triï un de nou. número si el número que tria no s’ajusta als nostres requisits. Aquí és on entra l'ordre GOTO. GOTO simplement diu a l'ordinador que vagi a una etiqueta determinada al codi. Les etiquetes tenen aquest aspecte: pick Qualsevol paraula situada després de dos punts es converteix en una etiqueta a la qual podem accedir amb l'ordre GOTO. Per tant, si volem anar a la secció de codi amb l'etiqueta "pick" que hi ha a sobre, simplement escrivim: GOTO pickAlright, així que continuem amb la nostra codificació. Ja hem dit a l’ordinador que triï un número aleatori, de manera que hem escrit: SET / a answer =% RANDOM% Ara volem reduir aquest número a un rang més petit. Per tant, invocarem l’ordre IF. Alguna cosa com aquesta hauria de fer el truc: SI% answer% GTR 20 GOTO pick Això indica a l’ordinador que GOTO tria SI la resposta és més gran de 20. També podríem posar qualsevol d’aquestes condicions en aquesta ordre IF: EQU - EqualNEQ - Not EqualLSS - Less ThanGTR - Greater ThanLEQ - Less than or Igual ToGEQ - Greater Than o Igual ToThus, amb IF, GOTO, etiquetes i aquestes abreviatures, podem manipular el fitxer per lots de la forma que vulguem. D’acord, doncs ara tenim el número aleatori de menys de vint anys, i això és el que tenim fins ara: pickSET / a answer =% RANDOM% IF% answer% GTR 20 GOTO pickNow, ens assegurem que l’ordinador no faci no trieu 0 per a la resposta.: pickSET / a answer =% RANDOM% IF% answer% GTR 20 GOTO pickIF $ answer% EQU 0 GOTO pickOk! Ara tenim un número útil entre 1 i 20. Passem a la carn del lot.

Pas 5: La carn del nostre joc

La carn del nostre joc
La carn del nostre joc

Molt bé, tenim el nostre número aleatori. També volem comptar quantes suposicions fa el nostre jugador, de manera que establirem una altra variable: SET / a guessnum = 0 Això estableix la variable geussnum a zero i li vam donar el paràmetre / a, de manera que podrem afegir cada vegada que l'usuari ho endevina. D'acord. Tenim un número aleatori i hem establert el nombre d’endevinalles. Ara necessitem algunes instruccions i hem de tenir alguna entrada d’usuari per al número d’endevinalla. Hauríeu d’entendre la majoria d’això, de manera que us mostraré el codi:: beginECHO Vaig a pensar en un número ECO que estic pensant ….. SET / a GuessNum = 0 (Aquest ECHO és aquestes dues línies i estableix el nombre d’endevinacions a 0): pickASET / a Resposta =% RANDOM% IF% Resposta% GTR 20 GOTO pickAIF% Resposta% EQU 0 GOTO pickAECHO Estic pensant en un número entre 1 i 20ECHO Endevina quin número estic pensant de. (Aquesta secció fa un bucle fins que SET el nostre número aleatori i, a continuació, RECOL·LA les instruccions per al nostre jugador): RetrySET / p Endevina = SI% Endevina% LSS% Respon% ECHO El meu número és més alt. SI% Endevina% GTR% Resposta% ECHO El meu número és més baix. IF% Guess% ==% Resposta% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO Torna-ho a provar (Aquesta secció indica a l’ordinador que demani l’entrada de l’usuari i, a continuació, fa un bucle contínuament fins que l’usuari selecciona número correcte. Després va a l’etiqueta FINAL): ENDECHO Estàs correcte! La resposta era% Resposta% ECHO Va trigar% GuessNum% Guesses. ECHO. PAUSECLSECHO Voleu tornar a jugar? ECHO S / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain. per tornar a jugar. Fixeu-vos que també podem utilitzar EQU, GTR i LSS amb lletres.) D'acord! Si simplement copieu aquest codi, tindríeu un joc d’endevinalles legítim. No és una fantasia real, però vaja, és millor del que pot fer la majoria de la gent. Però anem a afegir una mica de gir, només perquè les coses siguin interessants …

Pas 6: el gir

El gir
El gir
El gir
El gir
El gir
El gir

Ara, ara mateix tenim un joc de treball, però volem que sigui una mica més interessant. Què tal afegir algun incentiu perquè el nostre jugador endevini el nombre correcte? Què tal si fem alguna cosa com … apagar l'ordinador si no endevinen el número? Estaria molt bé! D’acord, ara afegirem un petit codi per fer aquests canvis. En primer lloc, afegirem una línia a la secció de codi que hem etiquetat com a "reintenta". Així que aneu a cercar aquesta secció. Sembla que això: RetrySET / p Endevina = SI% Endevina% LSS% Resposta% ECHO El meu número és més alt. SI% Endevina% GTR% Resposta% ECHO El meu número és inferior. IF% Endevina% ==% Respon% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO RetryOkay, afegirem aquesta línia just després del "ECHO". (Quan posem un punt després de ECHO, deixa una línia en blanc.) Aquí teniu el nou codi: IF% GuessNum% EQU 4 GOTO shutdownG Quan afegim aquesta línia, la secció té aquest aspecte: RetrySET / p Guess = IF% Guess% LSS% Resposta% ECHO El meu número és més alt. IF% Guess% GTR% Resposta% ECHO El meu número és menor. IF% Guess% ==% Resposta% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 Tancament de GOTO GGOTO Retry Per ara, hauria de ser bastant obvi què fa això. Indica a l'ordinador que, si GuessNum EQUals 4, hauria d'anar a la secció de codi etiquetada com "shutdownG". Llavors, què volem que digui aquesta secció d’aturada? Bé, òbviament, ha d'etiquetar-se "shutdownG". A continuació, ha d'apagar l'ordinador. L'ordre per apagar és "SHUTDOWN -s". Això apagarà l’ordinador, però volem afegir-ne una a l’ordre. Afegirem un "-f". Això obligarà a tancar tots els programes i afegirem un "-t 60". D’aquesta manera, l’ordinador mostrarà una finestra i esperarà seixanta segons per tancar-la. També afegirem el missatge "-c" aquí "". que mostrarà un missatge a la finestra d’aturada. Després de la nostra comanda de tancament, abordarem el mateix codi que tenim anteriorment, el codi que permet que el nostre jugador pugui triar números i els doni retroalimentació. Així, el nostre codi de tancament ara té aquest aspecte: shutdownGSHUTDOWN -s -f -t 60 -c "Segueix endevinant! Si no endevines el número correcte, l'ordinador s'apagarà!": shutdown G1SET / p Endevina = SI% Endevina% LSS% Resposta% ECHO El meu número és més alt. SI% Endevina% GTR% Resposta % ECHO El meu número és més baix. IF% Guess% ==% Resposta% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1 ordinador per aturar l’aturada, si s’ha iniciat. Per tant, afegirem això a la secció de codificació etiquetada com a "final". Aquesta secció té aquest aspecte: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO Estàs correcte! La resposta era% Resposta% ECHO Va trigar% GuessNum% Guesses. ECHO. PAUSECLSECHO Voleu tornar a jugar? ECHO S / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain Volem aturar l’aturada i ho fem amb l’ordre "SHUTDOWN -a". Per tant, afegirem una línia que diu així: SI% GuessNum% GTR 4 SHUTDOWN -aAfegirem aquesta ordre just després de l’etiqueta i això indicarà a l’ordinador que executi l’ordre SHUTDOWN -a només si el jugador té va fer més de quatre suposicions i va iniciar un tancament. Bé! ja hauríeu d'acabar el joc. Ens assegurarem que no hi hagi errors al següent pas.

Pas 7: passos finals

Passos finals
Passos finals

D’acord, ara, si heu encadenat tota aquesta codificació, tindreu alguna cosa que s’assembli a això: beginECHO Vaig a pensar en un número ECO que estic pensant ….. SET / a GuessNum = 0: pickASET / a Resposta =% RANDOM% IF% Resposta% GTR 20 GOTO pickAIF% Resposta% EQU 0 GOTO pickAECHO Estic pensant en un número entre 1 i 20 ECO Endevina en quin número estic pensant.: RetrySET / p Endevina = SI% Endevina % LSS% Resposta% ECHO El meu número és més elevat. IF% Guess% GTR% Resposta% ECHO El meu número és menor. IF% Guess% ==% Resposta% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 GOTO shutdown GGOTO Reintenta: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO Estàs correcte! La resposta era% Resposta% ECHO Va trigar% GuessNum% Guesses. ECHO. PAUSECLSECHO Voleu tornar a jugar? ECHO S / N? SET / p play = SI% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain: closeECHO Gràcies per jugar! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Continua endevinant ! Si no endevineu el número correcte, l'ordinador s'apagarà! ": Shutdown G1SET / p Endevina = SI% Endevina% LSS% Resposta% ECHO El meu número és més alt. SI% Endevina% GTR% Resposta% ECHO El meu número és Lower. IF% Guess% ==% Resposta% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1 Això hauria de ser tot el que necessitem, oi? Per tant, continueu i deseu el fitxer.txt del bloc de notes que teniu com a GuessGame.bat. De fet, podeu anomenar-lo com vulgueu, sempre que poseu el fitxer.bat al final. D’acord, feu clic a la icona i executeu el programa. Va funcionar? Doncs sorta. Està fent coses estranyes, oi? Resulta que quan escrivim un lot com aquest, el símbol del sistema ECHOs cada ordre que li donem, com si els escrivíssim al símbol del sistema. Per tant, el joc funciona, però és una mica desordenat i poc clar. Podem fer alguna cosa al respecte? Sí! Tot el que hem de fer és escriure aquesta línia al principi del nostre codi: @ECHO OFF Això indica a l’ordinador que desactivi l’ECO. I el signe @ de la petició li indica que desactivi ECHO per a cada ordre. Si deixéssim @ @, només desactivaria ECHO per a una ordre.

Pas 8: Tot fet

Enhorabona! Acabeu d’escriure un joc de fitxers Batch. Bastant simple, no? Si podeu fer-ho, podeu esbrinar com podeu fer-ho bastant amb els fitxers Batch. Simplement jugueu amb ell, feu alguns experiments. Per si no aconseguíeu que res funcionés o per si deixés alguna cosa fora de tota aquesta codificació, us donaré el fitxer aquí.

Recomanat: