Freeonline.it è una Web directory con la particolarità di indicizzare esclusivamente risorse gratuite... »
Clicca per info sulla pubblicità
Freeonline - La guida italiana alle risorse gratuite di Internet
Indice generale
»
Homepage
»
Tutto il gratis
»
Programmi gratuiti
»
Il gratis via email
»
News dal Web
»
Guide, Articoli, ...
»
Free Internet
»
Free Mail
»
Tools gratuiti
»
Forum
»
Blog
»
TV online
»
MyFreeonline
»
Mappa sito
Tutto Gratis

 
 
 
Breve guida al DOS - (Ver. 5.0 e successive)
 
Possibili scelte dell'utente
 

Bene veniamo adesso alle cose un po' più interattive, ossia come far scegliere qualcosa all'utente, per questo si deve utilizzare il comando "choice" che in pratica è un file denominato "choice.com" presente nel Dos dalla versione 5.0 in poi.

Il comando "choice" ha i seguenti parametri: C, N e T.
Il primo, C, imposta le lettere che l'utente ha a disposizione per fare una scelta, N dice al comando se visualizzare o meno quelle lettere e T aspetta un numero predefinito di secondi e poi esegue una lettera preimpostata.
La sintassi completa è:
choice /C:[elenco lettere]/N/Tn,C prompt
Ossia permettere di scegliere tra una lista di caratteri, non li visualizza e dopo un tot di secondi prende che l'utente abbia scelto il carattere C e stampa la stringa prompt. Chiaramente i parametri N e T possono essere omessi; veramente si può omettere anche C in questo caso i caratteri da cui si può scegliere di base sono il Si o il No ossia S e N però variano a seconda della lingua del sistema operativo ad esempio la versione italiana permette di scegliere tra S e N, quella inglese tra Y e N e la francese tra O e N. Quindi attenzione!

Come si fa però a far eseguire comandi appropriati per ogni scelta?
Per far questo si ricorre alle etichette ed al costrutto if errorlevel goto.

Le etichette hanno un nome e si riconoscono perché iniziano con i due punti ":".
Mentre bisogna sapere che, molti comandi Dos ed eseguibili hanno un parametro di ritorno, questo parametro può essere intercettato e si può saltare all'etichetta voluta, in pratica una etichetta è un punto che io posso raggiungere tramite il costrutto if errorlevel goto, e non solo, a dire il vero… l'unica precisazione da fare è che le etichette vengono eseguite in cascata, ossia se ce ne sono due di seguito e il nostro if salta alla prima, eseguirà poi anche la seconda, per evitare che questo accada è necessario mettere a fine file una etichetta "fine" e saltarci dopo il codice di ogni nostra etichetta col comando goto (in inglese go to, vuol dire "vai a").
Per esempio il comando choice restituisce come parametro di ritorno il valore numerico corrispondente alla posizione della lettera premuta ossia se attivate uno choice con la lista abc, il parametro di ritorno varrà 1 se premete la "a", 2 la "b" e 3 la "c".
Un ultima nota, prima di passare ad un esempio pratico, è che il costrutto errorlevel per funzionare correttamente deve essere strutturato in ordine decrescente ossia da 3 verso 1 nel nostro caso.
Un'altra cosa, negli script batch è possibile inserire dei commenti, basta che la stringa inizi con il comando rem, mentre se si vuole attendere la pressione di un tasto si può utilizzare il comando pause, che però stampa premi un tasto se non si vuol far scrivere nulla basta digitare pause >nul.

Supponiamo di voler realizzare un piccolo menù che esegua il comando dir, Edit oppure nulla:

--- Menu.Bat
@echo off
echo Menù.. scegli!
Choice /C:den Dir,Edit,Nulla
If errorlevel 3 goto dirr
If errorlevel 2 goto editt
If errorlevel 1 goto nulla
:dirr
dir
goto nulla
:editt
edit
goto nulla
:nulla

--- Fine!

Abbastanza chiaro! È come far saltare i comandi alla "label" scelta…!

Un ulteriore uso del costrutto if è if exist goto che funziona in modo analogo, solo che invece di controllare un risultato di un'eseguibile, salta all'etichetta se il file specificato esiste oppure se si usa il if not exist salta se non esiste... facciamo un esempio:

--- Esiste.Bat
@echo off
REM controlla che esiste autoexec.bat
if exist c:\autoexec.bat goto si
if not exist c:\autoexec.bat goto no
:si
echo Autoexec.bat esiste
goto fine
:no
echo Autoexec.bat non esiste
:fine

--- Fine!

Un'altra cosa che si può fare con gli script batch è passargli dei parametri da riga di comando, questo si fa in maniera molto semplice, ossia la prima variabile passata ha indice uno e negli script batch le variabili sono indicate con il percento davanti quindi %1 è il primo valore passato da riga di comando mentre %2 sarà il secondo e così via… questi valori sono di tipo stringa ossia caratteri presi dall'alfabeto ascii, ovvero lettere, numeri e simboli vari tutti fattibili con la tastiera.
Questo serviva a introdurre l'ultimo utilizzo del costrutto if, ossia l'uguaglianza o la disuguaglianza di due stringhe.
Un altro uso del costrutto if è la condizione di uguaglianza tra stringhe che si costruisce in questo modo if stringa1 == stringa2 goto comando; chiaramente mettendo un NOT davanti al confronto si ottiene una disuguaglianza
es. if not stringa1 == stringa2.

Ad esempio:

--- Uguale.bat
@echo off
if %1 == %2 goto uguale
if not %1 == %2 goto diverso
:uguale
echo %1 è uguale a %2
goto fine
:diverso
echo %1 è diverso da %2
:fine

--- Fine!

Questo script controlla due stringhe passate da riga di comando per vederlo funzionare devi scrivere qualcosa del genere:
uguale abc abc
oppure:
uguale abc cde
Un ultimo comando che può risultare utile è il comando CALL che consente di eseguire un altro script all'interno del chiamante ossia l'esecuzione dello script chiamante viene eseguita dopo aver eseguito lo script chiamato, chiaramente partendo dal punto dove si trova il comando CALL.
Mentre l'ultimo costrutto utile negli script che prenderò in esame in questa guida è il costrutto FOR %variabile IN (tipo di file) DO comando
Cioè la variabile assume il nome di ogni file del tipo specificato tra parentesi ed esegue un comando. Possiamo ad esempio fare uno script lista che funziona come il comando dir:

--- Lista.Bat
@echo off
echo Ricerchero tutti i file con estenzione %1
for %%i in (%1) do echo %%i

--- Fine

Ossia la variabile i (nei cicli if tutte le variabili devono essere precedute da due simboli di percentuale "%") assume di volta in volto il nome del file specificato dal tipo %1, e ne stampa a video il valore.
Ad esempio per avere la lista di tutti i file con estensione "TXT" basterà digitare:
C:\DOS\>lista *.txt
Questo è tutto…

 

 

<<< Indice | Successiva >>>

Autore: Michelangelo Giacomelli

 
Guide gratis di Freeonline
»
Indice
»
Speciali
»
WebMaster area
»
Motori ricerca
»
Articoli su Linux
»
Articoli utenti
»
Glossario
»
Interviste
»
Altri siti

 
 
Powered by PuntoWeb.Net S.r.l.