Pas de paràmetres a fitxers bat.
Tots els exemples de fitxers batch que hem descrit fins ara, estaven formats
per ordres fixes, és a dir, el contingut del fitxer bat no canviava, però això no
sempre ha de ser d’aquesta manera; existeix la possibilitat de passar arguments
o paràmetres al fitxer des de la línia de comandes de l’MS-DOS.
Format: nom_del_fitxer_bat par1 par2, ...
par1, par2,... representen els arguments o paràmetres que passem al fitxer bat.
Un paràmetre pot ser de diferents tipus i tenir diferents valors. Pot ser una
cadena de caràcters, un número...
Significat: Passa informació al fitxer bat des de la línia de comandes, o des d’un
altre fitxer bat que crida al primer.
Els paràmetres dins dels fitxers bats es representen mitjançant una variable que
té el format %nombre.
Format: %nombre %1 %2 %3 ......... %n
Significat: són les variables que s’utilitzen dins d’un fitxer bat per a gestionar els
paràmetres passats des de la línia de comandes o des d’un altre fitxer per lots.
El nombre màxim de paràmetres que podem passar a un fitxer bat és de 9.
Exercici 2: Interpreta el significat de cada línia, i digues quin seria el resultat de
l’execució del següent fitxer bat si li passéssim els paràmetres 20, 50, TAULA,
és a dir, si escrivíssim passa 20 50 TAULA, des de la línia de comandes.
Fitxer : passa.bat
@ECHO OFF
REM Pas de paràmetres
CLS
ECHO El primer paràmetre és %1
ECHO El segon paràmetre és %2
ECHO El tercer paràmetre és %3
ECHO prem una tecla per acabar...
PAUSE>NUL
CLS
En principi podem utilitzar com a màxim 9 paràmetres amb un fitxer bat, el
problema pot sorgir quan haguem d’utilitzar-ne més de 9. Per tal de resoldre
aquesta situació, podem utilitzar l’ordre SHIFT.
Format: SHIFT
Significat: Desplaça una posició a l’esquerra cada paràmetre.
Exemple:
Fitxer: impre.bat
@ECHO OFF
CLS
:REPE
IF “%1” == “” GOTO :FI
TYPE %1 >PRN
SHIFT
GOTO :REPE
:FI
CLS
Si l’executem de la següent forma:
C:\>IMPRE a b c d e f g h i j k l m n o p q r s
On a b c.... són nom de fitxers de text en codi ascii, el resultat de l’execució del
programa serà la impressió de tots aquests fitxers a la impressora.