I comandi batch sono comandi che generalmente hanno senso solo quando usati in un programma, appunto, batch.
Con poche eccezzioni, Windows XP ha gli stessi comandi dei programmi batch di MS-DOS.
Iniziamo riassumendo tutti i comandi batch e poi passiamo ad esaminare alcuni programmi batch di Windows XP.
Spiegherò solo alcuni dei comandi, ma per la maggior parte, questi dovrebbero essere sufficienti.
Comandi Batch:
| @ | Impedisce che la riga venga visualizzata sullo schermo quando usato come primo carattere in una riga |
| Echo [off] [on] | Attiva o disattiva la ripetizione dei comandi |
| Echo Messaggio | Visualizza il Messaggio sullo schermo |
| Echo. | Visualizza una riga vuota sullo schermo |
| Rem Messaggio | Identifica Messaggio come un commento |
| If [Not] ErrorlevelNumero comando | Esegue comando se il valore di livello di errore restituito dal comando precedente è minore o uguale a numero (Not capovolge la logica) |
| If [Not] Exist nomefile comando | Esegue comando se nomefile esiste (Not capovolge la logica) |
| If [Not] Stringa1 == Stringa2 comando | Esegue comando se Stringa1 è uguale a Stringa2, comprese maiuscole e minuscole (Not capovolge la logica) |
| Goto Etichetta | Trasferisce il controllo alla riga identificata da etichetta |
| : Etichetta | Indica la riga da raggiungere con un comando Goto |
| For % %variabileIn (gruppo) Do [comando] % % variabile |
Esegue un ciclo sugli elementi di gruppo, eseguendo comando per ogni ciclo e sostituendo qualsiasi occorrenza di variabile con l’elemento corrispondente da gruppo, che può essere un elenco separato da spazi o può contenere i caratteri jolly * e ? |
| Shift | Sposta di una posizione i parametri della riga di comando in modo che %2 diventi %1, %7 diventi %6 e così via. |
| Call filebat argomenti | Esegue filebat con argomenti e poi torna al programma batch chiamante. |
| Setlocal | Localizza le variabili ambiente; le modifiche alle variabili sono note solo in questo programma batch finchè non viene eseguito il comando Endlocal |
| Endlocal | Rende globali al sistema le variabili ambiente; le modifiche eseguite dopo Endlocal rimangono in vigore quando il programma batch termina. |
| Pushd percorso | Salva la cartella corrente in uno stack e passa a percorso |
| Popd | Passa all’ultima cartella salvata da Pushd e la rimuove dallo stack. |
| Pause | Sospende l’elaborazione finchè non viene premuto un tasto |
| Title | Assegna un titolo alla finestra Prompt dei comandi |
Creazione di un semplice programma batch
Il passo più importante nella scrittura del programma batch, come per qualsiasi altro tipo di programma per pc, consiste nello specificare correttamente il problema da risolvere.
Nel mio programma di esempio, il problema è accedere a una connessione remota componendo ripetutamente il numero di connessioni diverse finchè non ne riesce una.
Se una connessione non riesce (ad esempio perchè la linea è occupata, o la password errata), il programma dovrebbe provare un’altra connessione remota.
In questo caso il programma si appoggia a Rasdial.exe, la versione della riga di comando del componente remoto usato, appunto, dalle connessioni remote.
Per creare un programma batch utilizzate un editor di testo normale, come notepad o wordpad, poi assicuratevi di salvarlo modificandone l’estensione in .bat oppure .cmd
inizio programma:
@echo off
rem Connects to a dial-up connection
title Connessioni Remote
:START
echo Connecting to Libero
rasdial Libero pct_hiker *
if not errorlevel 1 goto end
echo Connecting to Alice
rasdial Alice swdocs *
if not errorlevel 1 goto end
echo Connecting to Tiscali
rasdial Tiscali swdocs *
if errorlevel 1 goto start
:END
title Command Prompt
———
Ora salviamo il file come “dial.bat” in C:
Apriamo il prompt dei comandi da START–Esegui: “cmd”
e digitiamo “c:\dial” per eseguire il nostro programma batch.



Sempre molto utili i tuoi articoli, grazie!