Sommario:

File batch: alcune nozioni di base..: 8 passaggi
File batch: alcune nozioni di base..: 8 passaggi

Video: File batch: alcune nozioni di base..: 8 passaggi

Video: File batch: alcune nozioni di base..: 8 passaggi
Video: ADOBE PREMIERE PRO: nozioni di base 2024, Dicembre
Anonim
File batch: alcune nozioni di base…
File batch: alcune nozioni di base…

Questo Instructable ti insegnerà alcune nozioni di base sulla scrittura di file batch e ti mostrerà come creare un gioco di indovinare i numeri con un paio di colpi di scena, solo per mantenere le cose interessanti…

Ho imparato la maggior parte delle mie abilità di prompt dei comandi e tutta la mia scrittura in batch da Internet in generale e da Instuctables in particolare. Vorrei ringraziare l'utente di Instructables Neodudeman per i suoi fantastici Instructables sulla scrittura batch. Grazie!

Passaggio 1: cos'è un file batch?

Che cos'è un file batch?
Che cos'è un file batch?

Bene, la maggior parte dei miei lettori probabilmente sa già cos'è un file batch, ma per ogni evenienza…

Un file batch è semplicemente una raccolta (batch) di comandi MSDOS che vengono eseguiti in sequenza quando si esegue il file batch. I file batch iniziano come file.txt nel blocco note e diventano file eseguibili quando li salvi come qualcosa con estensione.bat. Quindi, in pratica, tutto ciò che fai è scrivere un file in Blocco note e quindi salvarlo come, ad esempio, "instructable.bat". Una volta posizionato il.bat alla fine del nome del file, apparirà un nuovo file carino, chiamato come lo hai chiamato, con una bella icona a forma di ingranaggio. Ok, ora che sappiamo cosa sono questi file batch, passiamo alla scrittura!

Passaggio 2: comandi di base

Comandi di base
Comandi di base
Comandi di base
Comandi di base
Comandi di base
Comandi di base
Comandi di base
Comandi di base

Va bene, avrai bisogno di imparare alcuni comandi. Quindi, per prima cosa, apri il prompt dei comandi di MSDOS. Aprire la finestra di avvio, fare clic su Esegui, digitare "cmd.exe" e quindi fare clic su Esegui. Ok. Per prima cosa, esamineremo le variabili. Le variabili sono numeri, parole o altre cose che (in qualche modo ovviamente) variano. Il prompt dei comandi ha una funzione variabile. Ha alcune variabili che sono già impostate, come TIME, DATE e poche altre. La maggior parte delle variabili, tuttavia, puoi impostarla da solo. Fare clic sulla finestra del prompt dei comandi e digitare: SET variabile=casuale Non importa se si scrive "SET" in maiuscolo o meno, ma mi piace mettere in maiuscolo tutti i miei comandi, specialmente quando scrivo file batch. Rende solo più facile dire cosa stai facendo. Ora premi invio. Buon per te! Hai impostato la tua prima variabile! Ma cosa possiamo farci? a chi importa se tutto ciò che possiamo fare è impostare la variabile nel modo giusto? Bene, a quanto pare, possiamo fare molto di più, ma prima proviamo a fare in modo che il computer ci dica come è impostata la variabile. Ok, per fare in modo che il computer legga il valore di una variabile, digitiamo il nome della variabile, in questo caso "variable" e mettiamo il nome all'interno di segni %, in questo modo: %variable%. Vai avanti e digitalo e premi invio:%variabile%Errore strano eh? Il computer ha detto che "'variabile' non è riconosciuta come comando interno o esterno, programma eseguibile o file batch". Allora perché ha dato quell'errore? Bene, fondamentalmente, ha dato quell'errore perché il prompt dei comandi tratta il valore di quella variabile come se l'avessi digitato da solo. Quindi, quando hai digitato %variable%, il computer ha pensato che gli stessi dicendo di eseguire il comando "random". Ovviamente, abbiamo bisogno di qualcos'altro per vedere il valore della nostra variabile. È qui che entra in gioco il comando ECHO. Il comando ECHO dice semplicemente al prompt dei comandi di ripetere, o dire, qualunque cosa tu abbia digitato dopo ECHO. Quindi, se digitiamo il comando ECHO prima della nostra variabile, dovremmo ottenere ciò che vogliamo: ECHO %variable%There! Ora abbiamo quello che vogliamo! Il computer stampa "casuale". Ovviamente, questo era il valore che abbiamo digitato per la nostra variabile, quindi è il risultato che volevamo. Nel passaggio successivo, impareremo di più sulle variabili e su come utilizzarle.

Passaggio 3: utilizzo del comando SET e delle variabili

Utilizzo del comando SET e delle variabili
Utilizzo del comando SET e delle variabili
Utilizzo del comando SET e delle variabili
Utilizzo del comando SET e delle variabili

Ok, ora che sappiamo cosa sono le variabili, cos'altro possiamo fare con loro? Bene, possiamo fare matematica, possiamo usarli come condizioni per scrivere programmi e file batch, possiamo eseguire calcoli aritmetici di base, possiamo eseguire comandi e molto altro ancora. Non esamineremo tutto ciò che puoi fare con le variabili, ma discuteremo alcuni aspetti importanti della funzione variabile. Innanzitutto, il comando SET da solo produce solo variabili stringa. Ciò significa che non aggiungerà o eseguirà altri calcoli. Se dovessi dire al computer di aggiungere 1 a una variabile con un valore di 1, ti darebbe il valore 1 + 1. Se vogliamo che aggiunga effettivamente i due numeri, dobbiamo inserire una "/a" dopo il comando SET. Pertanto, digitiamo:SET /a varible=(value)Ora, supponiamo di voler inserire una variabile nel nostro file batch che l'utente fornirà. Potremmo volerlo fare se stessimo calcolando i valori secondo una formula o, nel nostro caso, se vogliamo che l'utente indovini un numero che il computer ha inventato. Per generare una variabile specificata dall'utente, aggiungiamo /p dopo il comando SET e lasciamo l'area dopo = vuoto:SET /p variabile=Ecco fatto! Una variabile specificata dall'utente! Se dovessimo inserire questa riga in un file batch, il batch verrà eseguito fino a raggiungere questa riga e quindi attenderà l'input dell'utente prima di continuare. L'altra cosa interessante di /p è che nega completamente /a. Quando includiamo /p possiamo semplicemente omettere /a. La prossima cosa che impareremo su di esso producendo variabili casuali. Se vogliamo che il computer scelga un numero casuale per una variabile, digitiamo semplicemente il comando SET, seguito dalla variabile, e quindi impostiamo la variabile su uguale a %RANDOM%. Ancora una volta, non ha bisogno di essere capitale, ma mi piace farlo comunque. Quindi, digitiamo:SET /a variabile=%RANDOM%Ovviamente, questa non è una variabile specificata dall'utente, quindi includiamo /a. Freddo! Quindi ora sappiamo come produrre un numero casuale! Ma quanto è casuale? Bene, si scopre che il computer sceglie un numero compreso tra 0 e da qualche parte intorno a 37.000. Non sono sicuro di quale sia il numero esatto. Ma cosa succede se volessimo un numero più piccolo? Supponiamo, come in questo Instructable, di volere un numero gestibile per qualcosa come un indovinello? Bene, è qui che entra in gioco il comando IF….

Passaggio 4: i comandi IF e GOTO. Il potere nelle mani di chi scrive batch

I comandi IF e GOTO. Il potere nelle mani del batch writer
I comandi IF e GOTO. Il potere nelle mani del batch writer

Quindi, vogliamo produrre un numero gestibile. Supponiamo di voler produrre un numero casuale compreso tra 1 e 20. Ok, è facile da dire, ma il valore RANDOM sceglie un numero compreso tra 1 e 37.000. È per questo che useremo IF. Il comando IF dice fondamentalmente SE succede qualcosa, o SE qualcosa è uguale o non uguale a un certo valore, ALLORA fai QUESTO. Quindi, SE imposta i comandi condizionali. Vogliamo produrre un numero minore di venti, ma maggiore di uno, ovviamente inizieremo dicendo al computer di scegliere un numero casuale, ma poi dovremo essere in grado di dirgli di scegliere un nuovo numero se il numero selezionato non soddisfa i nostri requisiti. È qui che entra in gioco il comando GOTO. GOTO dice semplicemente al computer di ANDARE A una certa etichetta nel codice. Le etichette hanno questo aspetto::pickQualsiasi parola posta dopo i due punti diventa un'etichetta a cui possiamo accedere con il comando GOTO. Quindi, se vogliamo andare alla sezione di codice con l'etichetta "pick" sopra di essa, digitiamo semplicemente: GOTO pickAlright, quindi continuiamo con la nostra codifica. Abbiamo già detto al computer di scegliere un numero casuale, quindi abbiamo digitato:SET /a answer=%RANDOM%Ora vogliamo ridurre questo numero a un intervallo più piccolo. Quindi invocheremo il comando IF. Qualcosa del genere dovrebbe fare il trucco:IF %answer% GTR 20 GOTO pickQuesto dice al computer di GOTO pick SE la risposta è MAGGIORE di 20. Potremmo anche mettere una di queste condizioni su quel comando IF:EQU - EqualNEQ - Not EqualLSS - Minore diGTR - Maggiore diLEQ - Minore di o uguale a GEQ - Maggiore di o uguale aCosì, con IF, GOTO, etichette e queste abbreviazioni, possiamo manipolare il nostro file batch in qualsiasi modo scegliamo. Ok, ora abbiamo il nostro numero casuale sotto i venti, ed ecco cosa abbiamo ottenuto finora::pickSET /a answer=%RANDOM%IF %answer% GTR 20 GOTO pickOra, assicuriamoci che il computer non lo faccia t scegli 0 per la risposta.:pickSET /a answer=%RANDOM%IF %answer% GTR 20 GOTO pickIF $answer% EQU 0 GOTO pickOk! Ora abbiamo un numero utilizzabile compreso tra 1 e 20. Passiamo alla carne del Batch.

Fase 5: La carne del nostro gioco

La carne della nostra selvaggina
La carne della nostra selvaggina

Bene, abbiamo il nostro numero casuale. Vogliamo anche contare quante supposizioni fa il nostro giocatore, quindi imposteremo un'altra variabile:SET /a guessnum=0Questo imposta la variabile geussnum a zero, e le abbiamo dato il parametro /a, quindi saremo in grado di aggiungere ad esso ogni volta che l'utente indovina. Ok. Abbiamo un numero casuale e abbiamo impostato il numero di ipotesi. Ora abbiamo bisogno di alcune istruzioni e abbiamo bisogno dell'input dell'utente per il numero indovinato. Dovresti capire la maggior parte di questo ormai, quindi ti mostrerò solo il codice::beginECHO penserò a un numeroECHO sto pensando….. SET /a GuessNum=0(Questo ECHOs quelle due righe e imposta il numero di tentativi su 0):pickASET /a Answer=%RANDOM%IF %Answer% GTR 20 GOTO pickAIF %Answer% EQU 0 GOTO pickAECHO Sto pensando a un numero compreso tra 1 e 20ECHO Indovina quale numero sto pensando of. (Questa sezione esegue un ciclo finché non IMPOSTA il nostro numero casuale, quindi ECHOs le istruzioni per il nostro lettore):RetrySET /p Guess=IF %Guess% LSS %Answer% ECHO Il mio numero è più alto. IF %Guess% GTR %Answer% ECHO Il mio numero è più basso. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1GOTO Retry(Questa sezione dice al computer di chiedere l'input dell'utente, quindi esegue un ciclo continuo finché l'utente non sceglie il numero corretto. Quindi, va all'etichetta FINE):ENDECHO Hai ragione! La risposta è stata %Answer%ECHO Ci sono voluti %GuessNum% Guesses. ECHO. PAUSECLSECHO Vuoi giocare di nuovo?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(Ecco la nostra sezione finale. Questo dice all'utente quanti tentativi ha fatto, e poi chiede se vuole per giocare di nuovo. Nota che possiamo usare anche EQU, GTR e LSS con le lettere.) Ok! Se hai semplicemente copiato questo codice, avresti un indovinello legittimo. Non è una vera fantasia, ma ehi, è meglio di quanto la maggior parte delle persone possa fare. Ma aggiungeremo un piccolo tocco, solo per rendere le cose interessanti…

Passaggio 6: il colpo di scena

La torsione
La torsione
La torsione
La torsione
La torsione
La torsione

Ora, abbiamo un gioco funzionante in questo momento, ma vogliamo renderlo un po' più interessante. Che ne dici di aggiungere un incentivo affinché il nostro giocatore indovini il numero giusto? Che ne dici di fare qualcosa come… spegnere il computer se non indovinano il numero? Sarebbe fantastico! Ok, ora aggiungeremo un piccolo codice per apportare queste modifiche. Per prima cosa, aggiungeremo una riga alla sezione di codice che abbiamo etichettato come "riprova". Quindi vai a cercare quella sezione. Sembra così::RetrySET /p Guess=IF %Guess% LSS %Answer% ECHO Il mio numero è più alto. IF %Guess% GTR %Answer% ECHO Il mio numero è più basso. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1GOTO RetryOk, aggiungeremo questa riga subito dopo "ECHO". (Quando mettiamo un punto dopo ECHO, lascia una riga vuota.) Ecco il nuovo codice:IF %GuessNum% EQU 4 GOTO shutdownGQuando aggiungiamo questa riga, la sezione appare così::RetrySET /p Guess=IF %Guess% LSS %Answer% ECHO Il mio numero è più alto. IF %Guess% GTR %Answer% ECHO Il mio numero è più basso. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1IF %GuessNum% EQU 4 GOTO shutdownGGOTO RetryA questo punto dovrebbe essere abbastanza ovvio cosa fa. Dice al computer che se GuessNum EQUals 4, dovrebbe andare alla sezione del codice etichettata "shutdownG". Quindi, cosa vogliamo che dica questa sezione di spegnimento? Beh, ovviamente deve essere etichettato come "shutdownG". Successivamente, deve spegnere il computer. Il comando per spegnere è "SHUTDOWN -s". Questo spegnerà il computer, ma vogliamo aggiungerne alcuni al comando. Aggiungeremo un "-f". Ciò forzerà la chiusura di tutti i programmi e aggiungeremo un "-t 60". Ciò dirà al computer di visualizzare una finestra e attendere sessanta secondi per chiudersi. Aggiungeremo anche "-c "messaggio qui"". che visualizzerà un messaggio nella finestra di spegnimento. Dopo il nostro comando di spegnimento, vireremo sullo stesso codice che abbiamo sopra, il codice che consente al nostro giocatore di scegliere i numeri e dà loro un feedback. Quindi il nostro codice di spegnimento ora assomiglia a questo::shutdownGSHUTDOWN -s -f -t 60 -c "Continua a indovinare! Se non indovini il numero giusto, il computer si spegne!":shutdownG1SET /p Guess=IF %Guess% LSS %Answer% ECHO Il mio numero è più alto. IF %Guess% GTR %Answer % ECHO Il mio numero è inferiore. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1GOTO shutdownG1Ora abbiamo impostato il computer su SHUTDOWN e visualizzato un messaggio, ma dobbiamo anche dire al computer per interrompere l'arresto, se è stato avviato. Quindi, lo aggiungeremo alla sezione di codifica etichettata "fine". Quella sezione ha questo aspetto::ENDIF %GuessNum% GTR 4 SHUTDOWN -aECHO Hai ragione! La risposta è stata %Answer%ECHO Ci sono voluti %GuessNum% Guesses. ECHO. PAUSECLSECHO Vuoi giocare di nuovo?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 Vogliamo fermare lo spegnimento e lo facciamo con il comando "SHUTDOWN -a". Quindi, aggiungeremo una riga così:IF %GuessNum% GTR 4 SHUTDOWN -aAggiungeremo quel comando subito dopo l'etichetta, e questo dirà al computer di eseguire il comando SHUTDOWN -a solo se il giocatore ha ha fatto più di quattro ipotesi e ha avviato un arresto. Va bene! dovresti avere finito il tuo gioco ora! Faremo in modo che non ci siano bug nel passaggio successivo.

Passaggio 7: passaggi finali

Passaggi finali
Passaggi finali

Ok, ora se metti insieme tutta quella codifica, allora avrai qualcosa che assomiglia a questo::beginECHO penserò a un numeroECHO sto pensando….. SET /a GuessNum=0:pickASET / a Risposta=%RANDOM%IF %Answer% GTR 20 GOTO pickAIF %Answer% EQU 0 GOTO pickAECHO Sto pensando a un numero compreso tra 1 e 20ECHO Indovina a quale numero sto pensando.:RetrySET /p Guess=IF %Indovina % LSS %Answer% ECHO Il mio numero è più alto. IF %Guess% GTR %Answer% ECHO Il mio numero è più basso. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1IF %GuessNum% EQU 4 GOTO shutdownGGOTO Riprova:ENDIF %GuessNum% GTR 4 SHUTDOWN -aECHO Hai ragione! La risposta è stata %Answer%ECHO Ci sono voluti %GuessNum% Guesses. ECHO. PAUSECLSECHO Vuoi giocare di nuovo?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:closeECHO Grazie per aver giocato!PAUSEEXIT cmd:shutdownGSHUTDOWN -s -f -t 60 -c "Continua a indovinare ! Se non indovini il numero corretto, il computer si spegne!":shutdownG1SET /p Guess=IF %Guess% LSS %Answer% ECHO Il mio numero è più alto. IF %Guess% GTR %Answer% ECHO Il mio numero è Lower. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1GOTO shutdownG1 Dovrebbe essere tutto ciò di cui abbiamo bisogno, giusto? Quindi, vai avanti e salva il file.txt del blocco note che hai come GuessGame.bat. In realtà, puoi chiamarlo come vuoi, purché metti il .bat alla fine. Ok, quindi fai clic sull'icona ed esegui il programma! Ha funzionato? Bene sorta. Sta facendo cose strane, vero? Si scopre che quando scriviamo un batch come questo, il prompt dei comandi esegue l'ECHO per ogni comando che gli diamo, proprio come se li avessimo digitati nel prompt dei comandi. Quindi il gioco funziona, ma è un po' disordinato e poco chiaro. Possiamo fare qualcosa al riguardo? Sì! Tutto quello che dobbiamo fare è digitare questa riga all'inizio del nostro codice:@ECHO OFF Questo dice al computer di spegnere l'ECHO. E il segno @ all'inizio gli dice di disattivare l'ECO per ogni comando. Se lasciassimo @ fuori, disattiverebbe ECHO solo per un comando.

Passaggio 8: tutto fatto

Congratulazioni! Hai appena scritto un gioco di file batch. Abbastanza semplice non è vero? Se riesci a gestirlo, puoi capire come fare un po 'con i file Batch. Giocaci, fai qualche esperimento. Nel caso in cui non riuscissi a far funzionare qualcosa, o nel caso avessi tralasciato qualcosa in tutta quella codifica, ti darò il file qui.

Consigliato: