Sommario:
- Passaggio 1: comando START
- Passaggio 2: comando SET - Teoria delle stringhe (1/4)
- Passaggio 3: comando SET - Mr.Math (2/4)
- Passaggio 4: comando SET - Input utente (3/4)
- Passaggio 5: comando SET - Più di quanto sembri (4/4)
- Passaggio 6: comando IF - Tutti sono uguali (1/2)
- Passaggio 7: Comando IF - Ma io sono più grande di te (2/2)
- Passaggio 8: comando GOTO
- Passaggio 9: > Parametro (1/2)
- Passaggio 10: >> Parametro (2/2)
- Passaggio 11: implementazione di esempio
- Passaggio 12: Conclusione: Note finali
Video: Lotto avanzato: 12 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:05
ma va bene, usa semplicemente il comando CD o CHDIR per cambiare directory. Ma in questo caso non importa.", "top":0.08480565371024736, "left":0.014285714285714285, "height":0.8586572438162544, "width":0.9357142857142857}]">
PER FAVORE INDIRIZZARE TUTTE LE DOMANDE CHE POTRESTI AVERE AL MIO BLOG: https://tamsanh.com/blog/2008/07/11/batch-tutorial-3-advanced-batch/Non visito più istruttori e otterrai una risposta più veloce risposta in quel modo. Ehi ragazzi! Tam Nguyen qui. È passato molto tempo, ma ora è qui! Ti presento la prossima puntata dei miei tutorial sui batch! Potresti (o non potresti) aver letto i miei altri tutorial: Nozioni di base su Batch Un po 'più avanzato Batch Questo Instructable prende in prestito alcuni elementi dai primi due Instructables. Vale a dire: ECHO CommandCD CommandDIR CommandSe non hai letto gli altri due, ti suggerisco di esaminare quei comandi rapidamente. Aspetterò qui. Ok! Entro la fine di questo Instructable, sarai intimo con: START CommandSET CommandIF CommandGOTO Commandand> e >> Parameters Con questi comandi, sarai in grado di creare file batch dinamici che possono cambiare in base all'input dell'utente, e crea ed espandi. Quindi apriamo quel buon 'ol Prompt dei comandi e iniziamo! Esegui -> cmd In alternativa, puoi andare a: Start-> Programmi-> Accessori-> Prompt dei comandi Le mie spiegazioni in questo istruzioni sono un po' lunghe, quindi ho suddiviso alcuni comandi in più di una pagina principalmente per scopi estetici; Mi piaceva vedere le immagini mentre leggevo il testo senza dover scorrere su e giù. Regola empirica per la visualizzazione delle immagini; Di solito dopo ogni frammento di codice, c'è un'immagine. Buon divertimento!
Passaggio 1: comando START
Il comando START è un piccolo comando carino che avvia le cose! È un comando semplice e ci aiuterà a riscaldarci prima di arrivare ai comandi più difficili. I parametri del comando sono esattamente quelli che pensi che siano.
INIZIA ThingToBeStarted.exeAbbastanza semplice
AVVIA WMPlayer.exeNon solo puoi avviare.exe, puoi anche digitare un sito Web e si aprirà nel browser predefinito
INIZIA www. Instructables.comAbbastanza facile, eh? Ok. Passiamo ora alla vera carne dell'Instructable: il comando SET.
Passaggio 2: comando SET - Teoria delle stringhe (1/4)
Il comando SET: il Definitore di variabili. Ah. Variabili. L'ambrosia dello sviluppatore. Le variabili sono bit di memoria che sono… ehm, variabili. Nessun SE AND o NOT a riguardo! (lol, scusa). Ok! Quindi, come funziona questo bambino? Molto semplicemente, i parametri del comando SET sono: SET VariableName=Variable ValueSET da solo creerà variabili stringa.
SET TestVS=Stringa variabile di prova!In questo caso, abbiamo appena memorizzato il valore "Test Variable String!" nella variabile TestVS. Bene, è tutto gioco e divertimento, ma come recuperiamo il valore della variabile? Usiamo %. Aggiungi % intorno al nome della variabile
ECHO %TestVS%Ok bello, ma cos'altro può fare?
Passaggio 3: comando SET - Mr. Math (2/4)
Può fare matematica? Bene, facciamo un semplice batch per testarlo.
@ECHO OFFSET Test=1ECHO %Test%SET Test=%Test%-1ECHO %Test%PAUSEAww, cosa è successo? Dovrebbe funzionare! Aspetta un minuto… che cos'era quello sui comandi SET che creano solo stringhe? Sì. Il comando SET da solo creerà solo una variabile stringa, il che significa che creerà l'interpretazione più letterale del valore. Non pensa a "1 - 1" uguale a "0", pensa a "1 - 1" uguale a "1 - 1". Quindi, come cambiarlo? Vogliamo che la variabile non venga copiata direttamente, ma valutata. Questo significa che vogliamo trasformarlo da una stringa in un'espressione! Una modifica molto semplice, basta aggiungere /a al comando SET. Ecco un semplice file batch per vederlo in azione, oppure puoi semplicemente digitarlo nel manuale del prompt dei comandi. Suggerisco quest'ultimo; è molto più veloce e il codice non è troppo complicato, ma se vuoi davvero il file batch, eccolo qui
@ECHO OFFSET /a Test=2+2ECHO %Test%PAUSEFantastico! Lo ha espresso perfettamente. Ora sappiamo quali modifiche devono essere apportate al nostro "test di matematica.bat"
@ECHO OFFSET /a Test=1ECHO %Test%SET /a Test=%Test%-1ECHO %Test%PAUSEOk. Quindi eseguiamolo! Fantastico! Ha funzionato perfettamente! Ma cosa succederà?
Passaggio 4: comando SET - Input utente (3/4)
Il SET ha anche la capacità di richiedere all'utente l'input. Aggiungendo /p ai parametri SET, lo trasforma da un normale setter di variabili a un setter di variabili controllato dall'utente.
SET /p UDefine=Con /p, il programma si ferma effettivamente e attende l'input dell'utente. Ma aspetta, non vedo un parametro /a, significa che la variabile è solo una stringa? Bene, una specie. Il /p dei parametri nega completamente /a e, se lo si tenta, si ottiene semplicemente un errore dell'operando mancante. Ciò significa che la variabile definita dall'utente non sarà in grado di valutare le espressioni. Quindi cosa si può fare? Bene, ecco un trucco complicato che ho pensato che possiamo usare. Il comando SET non fa tutto l'uso simultaneo dei parametri /pe /a, giusto? Bene, che dire dell'uso sequenziale dei parametri /a e /p? Ahhh… stivali furbi
@ECHO OFFECHO Calcolatrice Versione 1.0ECHO. SET /p UDefine=SET /a UDefine=%UDefine%ECHO =ECHO %UDefine%ECHO. PAUSEBella calcolatrice ci sei arrivato. Se non l'hai ancora capito, {{{ECHO.}}} è una riga vuota. Non è fantastico?
Passaggio 5: comando SET - Più di quanto sembri (4/4)
A questo punto, può sembrare che le variabili del comando SET siano valide solo per le stringhe e le espressioni. Non vero. Le variabili sono, infatti, molto molto flessibili e non sono limitate solo agli ECHO. Hai provato a digitare una variabile da sola?
SET Test=Instructables%Test%Che strano errore … dice che il comando "Instructables" non è riconosciuto, non che %Test% non aveva sintassi. Quindi questo significa che DOS tratta ogni variabile come se fosse stata digitata a mano. Bene, e se?
SET Test=START cmd.exe%Test%Stupendo! Ha funzionato! DOS tratta ogni variabile come se fosse stata digitata dall'utente e la esegue di conseguenza. Ecco un codice interessante: (basta copiare/incollare; è un po' noioso.
@ECHO OffSET Variabile1=ECSET Variabile2=HSET Variabile3=O CSET Variabile4=ooSET Variabile5=l!ECHO %Variabile1%%Variabile2%%Variabile3%%Variabile4%%Variabile5%ECHO.%Variabile1%%Variabile2%%Variabile3%%Variabile4% %Variabile5%PausaNon è pulito? Ogni variabile contiene due lettere dell'intero messaggio (tranne Variable2), e mettendo in ordine le variabili, ogni lettera si somma e termina l'intero comando di ECHO Cool! Il comando SET è uno dei comandi più complicati e potenti del dizionario DOS.
Passaggio 6: comando IF - Tutti sono uguali (1/2)
Quel classico operando condizionale. Di base, ma comunque potente. Per coloro che non hanno mai programmato prima, il comando IF è esattamente come suona. Se un'espressione nella sintassi risulta vera (o NON vera), verrà eseguita la sequenza di comandi successiva. La riga di comando di base funziona così:
IF %variable1%==%variable2% ECHO Questa parte viene eseguitao se hai più di una sintassi
@ECHO OFFIF %variable1%==%variable2% (ECHO Questa parte viene eseguita. ECHO Così è questo.) ELSE (ECHO Se la variabile1 non&apost = variabile 2, succede questo. ECHO e succede anche questo.)Nota: la posizione peculiare delle parentesi non è perché non credo nel codice organizzato, ma perché se non sono in quei posti, l'intero frammento IF non funzionerà. Pertanto, se si verifica un errore con il codice IF, è molto probabilmente a causa della parentesi. Per eseguire questo particolare batch, ho effettivamente utilizzato il prompt dei comandi stesso, in modo da poter impostare le variabili senza dover modificare il multiplo IfVariableTest.bat volte.
Passaggio 7: Comando IF - Ma io sono più grande di te (2/2)
Ok, quindi hai una bella istruzione IF e tutto, e controllare se le variabili sono uguali o meno è bello e tutto, ma non si adatta perfettamente al conto. Voglio che succeda qualcosa se la variabile1 è inferiore all'altra variabile! Per quelli di noi programmatori, so che sembra un compito semplice. Fai quello che fanno tutti gli altri linguaggi di programmazione! Tieni i tuoi cavalli cowboy. Non così in fretta. Un file batch non è solo il tuo vecchio linguaggio di programmazione. Per quanto sciocco possa sembrare, il "" non funziona con i file batch.
EQU - Uguale - ==NEQ - Non ugualeLSS - Minore diGTR - Maggiore diLEQ - Minore o uguale aGEQ - Maggiore o uguale aMetti questi operandi al posto di ==Example
SE 32 GTR 3 ECHO funzionerà
@ECHO OFFIF 32 GEQ 32 (ECHO 32 è maggiore di o uguale a 32) ELSE (ECHO 32 è sicuramente uguale a 32) PAUSEIF 32 LSS 32 (ECHO 32 è minore di 32? Penso di no.) ELSE (ECHO 32 è Non meno di 32. Fine della storia.)PAUSA
Passaggio 8: comando GOTO
Il comando GOTO. Fa esattamente quello che dice; va A un'etichetta nello script del file batch. Per utilizzare questo comando, è necessario prima disporre di un'etichetta. Le etichette hanno questo aspetto:
:Etichetta1È semplicemente un due punti prima di una serie di lettere e/o numeri non spaziati. Il comando GOTO è strutturato in questo modo
GOTO Etichetta1È così facile! A pensarci bene, non sono davvero sicuro del motivo per cui non l'ho inserito nel batch leggermente avanzato. In ogni caso, questo comando può essere utilizzato per ripetere un file batch semplicemente GOTO un'etichetta che esegue nuovamente il comando GOTO
@ECHO OFF:RepeatMeECHO Questo verrà ripetuto a meno che non si prema "CTRL-C"GOTO RepeatMeA proposito, il file batch dice la verità. CTRL-C è la pausa e la richiesta di interruzione universali. CTRL-S è semplicemente Pausa. Ma chiudere la finestra funziona altrettanto bene. Il GOTO può saltare o anche riordinare il codice
GOTO TurnEOffGOTO MultipleGotoECHO Questo ECHO verrà saltato.:MultipleGotoGOTO 3:ENDPAUSEEXIT:1ECHO The EndGOTO END:3ECHO Questo verrà visualizzato per primoGOTO 2:TurnEOff@ECHO OFFGOTO MultipleGoto:2ECHO Questo è il secondo, anche se è l'ultimo nel codice. GOTO 1Il codice sopra è stato strutturato in modo confuso allo scopo di enfatizzare la capacità del GOTO di saltare nel codice.
Passaggio 9: > Parametro (1/2)
Comando>Nome fileOk, quindi diciamo che siamo in una certa directory. Usiamo quindi il comando DIR, che, se leggi le basi di Batch, sapresti mostrare il contenuto della tua directory corrente
C:\Utenti\Neo\>DIRNormalmente emetterebbe
Il volume nell'unità C è HP Il numero di serie del volume è BC7E-E26C Directory di C:\Users\Neo2007-30-06 11:14.2007-30-06 11:14..2007-17-03 18:41.idlerc2007-02-19 15:14 Contatti2007-06-19 22:44 Desktop2007-06-29 08:47 Documenti2007-06-19 10:35 Downloads2007-02-19 15:14 Favorites2007-02-19 2007 15:14 Link2007-05-12 16:01 Musica2007-06-30 01:20 Immagini0704/2007 15:08 Giochi salvati2007-02-19 15:14 Ricerche2007-03-01 19:23 PM 242, 947 Test Record.wma2007-06-19 10:39 Video2007-06-18 09:57 1, 324, 574 wp_screenprint_mc.pdf2007-06-18 09:59 73, 996, 533 wp_tshirt_full.mp4 4 File 75, 564, 054 byte 14 Dir 132, 927, 537, 152 byte liberiMa, se aggiungiamo il > e ad esso
C:\Users\Neo\DIR>DIRContents.txtNon otteniamo un output, ma invece otteniamo un file di testo nuovo di zecca chiamato DIRContents.txt che contiene l'output! Freschezza! Ma aspetta, c'è un problema! Voglio avere più output nello stesso file, ma il mio > continua a sovrascriverlo e non ad aggiungerlo! Cosa devo fare?
Passaggio 10: >> Parametro (2/2)
DIR>>DIRContents.txtPulito! Ha funzionato perfettamente! Quindi aspetta. Significa che posso scrivere tutto ciò che voglio in un file di testo? voglio provarlo
Il batch è fantastico> Awesome.txtChe cosa? Perché non ha funzionato? È perché il parametro scrive solo l'output dei comandi legittimi, non solo tutto ciò che si digita. Ma questo è un problema che viene semplicemente risolto. Ricorda, i parametri registrano l'output dei comandi. Quale comando ha un output che possiamo controllare? Giusto! Il comando ECHO
ECHO Batch Is Awesome>Awesome.txtECHO Sono così felice di saperlo.>>Awesome.txtSìì! Ricordare. Il >> aggiunge l'output alla riga successiva del file.
Passaggio 11: implementazione di esempio
Ok. Quindi mettiamo tutto insieme! Ecco alcuni codici di esempio che ho creato che utilizzano i comandi che ti ho mostrato in questo istruibile. Questo codice aggiungerà continuamente 1 a una variabile e restituirà il risultato a tempo indeterminato.
@ECHO OFFSET /a num=1:RepeatECHO %num%SET /a num=%num%+1GOTO RipetiQuesto codice avvierà CMD.exe 5 volte
@ECHO OFFSET /a RepeatNum=5:OpenIF %RepeatNum%==0 GOTO EndSTART CMD.exeSET /a RepeatNum=%RepeatNum%-1GOTO Open:EndQuesto codice creerà un file batch in C:\Users\Neo e lo eseguirà
@ECHO OFFCHDIR C:\Users\NeoECHO @ECHO OFF>Hello.batECHO ECHO Hello!>>Hello.batECHO ECHO I&aposm nell'unità C!>>Hello.batECHO PAUSE>>Hello.batC:\Users\Neo\Hello. batPausaQuesto è un piccolo lotto di giochi. Devi indovinare il numero
@ECHO OFFSET /a GuessNum=0SET /a Risposta=%RANDOM%ECHO Indovina a che numero sto pensando.:RetrySET /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 Riprova:ENDECHO Hai ragione! La risposta è stata %Answer%ECHO Ci sono voluti %GuessNum% Guesses. ECHO. PAUSEE questo, mi piace molto. Se non stai attento, tuttavia, può sfuggire di mano abbastanza rapidamente, a seconda delle capacità del tuo computer. Ciò che fa questo file è creare indefinitamente file di testo numerati in una directory chiamata lolnumbers. Ciascuno di questi file di testo contiene il DIR della directory lolnumbers. Il fatto è che la directory diventa sempre più piena di file di testo, quindi ogni file di testo consecutivo è più grande dell'ultimo. Il risultato è una cartella la cui dimensione totale diventa sempre più grande ogni secondo
@ECHO OFFSET /a num=1MKDIR lolnumbersCD lolnumbers:RestartDIR>%num%.txtSET /a num+=1GOTO RiavviaQuesti sono codici piuttosto basilari. Sperimentali a tuo piacimento.
Passaggio 12: Conclusione: Note finali
uff. Abbiamo coperto un sacco di cose in questo istruibile. Questo è, infatti, 3 volte più lungo del mio ultimo. Spero che ti piaccia! Solo alcuni promemoria prima di andare. Ricorda: quando si imposta una variabile, non inserire mai uno spazio tra la variabile e il suo valore. S:
SET variabile1=ValoreLo spazio extra farà sì che la tua variabile sia vuota. NO
SET variabile1 = ValoreInoltre, i molteplici IF. Ricordati di formattare correttamente le parentesi: SI
IF 1==1 (ECHO Uno è uguale a uno!) ELSE (ECHO Qualcosa non va in questo programma.)NO
IF 1==1(ECHO Uno è uguale a uno!)ELSE(ECHO Qualcosa non va in questo programma.)Inoltre, ci sono anche variabili integrate
%CD%%DATA%%ORA%%RANDOM%%CD% Si espande nella directory corrente. Fondamentalmente, il percorso dietro il primo>% DATE% e% TIME% sono la data e l'ora.% RANDOM% fornisce un numero casuale tra 0 e 32767. L'intervallo non può essere modificato, non credo. E questo è fondamentalmente! Spero che questo tutorial ti sia piaciuto, ci ho lavorato davvero duramente. Spero che compensi i 10 mesi di assenza. Ora le cattive notizie. Avrò un po' di problemi a rispondere a qualsiasi domanda nei prossimi mesi, perché sarò fuori dal Paese. Ma se hai una domanda, lascia un commento a chiunque. Se riesco ad accedere a un computer, mi assicurerò di rispondere, ma non credo che sarà necessario; Instructables è una comunità amichevole e sono sicuro che qualcuno là fuori ti aiuterà nella tua situazione. Buon lotto!
Consigliato:
Robot che segue la linea avanzato: 22 passaggi (con immagini)
Robot che segue la linea avanzato: questo è un robot che segue la linea avanzato basato su Teensy 3.6 e un sensore di linea QTRX che ho costruito e su cui ho lavorato per un po' di tempo. Ci sono alcuni importanti miglioramenti nel design e nelle prestazioni della mia prima linea che segue il robot. T
Come creare il tuo sistema operativo! (lotto ed esempio all'interno): 5 passaggi
Come creare il tuo sistema operativo! (batch ed esempio all'interno): fallo ora
Ciondolo LED avanzato: 4 passaggi
Ciondolo a LED avanzato: in questo tutorial ti mostrerò come puoi creare il tuo ciondolo a LED. Dovresti controllare il mio precedente ciondolo a LED, ti mostro alcuni ottimi consigli. I gioielli fanno parte della bellezza? Lo scopriremo
Lotto di password: 4 passaggi
Batch di password: ciao comunità di Instructables! Ho deciso di condividere con te come creare un file batch di password molto semplice che verrà eseguito tramite il prompt dei comandi. Questo è il mio primo Instructable, quindi per favore sii gentile con i commenti, ma dimmi se c'è un
Lotto di base: 6 passaggi
Batch di base: in questo Instructable ti mostrerò le basi di CMD e file batch, di seguito c'è un'immagine della mia finestra cmd. Questo è il mio primo istruibile