ArcadiA Club
ArcadiA Club


AAC FORUM     AAC News     AAC Box    



Home Page   Home Page
informatica.htm   Informatica - FORUM sezione  Vai al FORUM
 
Username:
Password:
Iscriviti!  |  Recupero password



Iscriviti GRATIS, potrai navigare senza questa
fascia e accedere a contenuti esclusivi:

    E-Mail:

Password:



 

 
- Come lavorare con i parametri batch -
 
TUTORIAL
Gestire in maniera avanzata i parametri nei file batch

File batch di esempio in esecuzione

File batch di esempio in esecuzione


Domanda
Come funzionano i parametri nei file batch?

Risposta
Talvolta capita di dover scrivere un file batch (.bat) che deve ricevere dei parametri: in questo semplice tutorial vedremo come gestirli e manipolarli con la sintassi propria dei batch di Windows.
Vediamo un primo file batch di esempio (stampa1-3.bat):

@echo off
echo Il primo parametro: %1
echo Il terzo parametro: %3

Se lo eseguiamo con dal prompt dei comandi come segue:

stampa1-3.bat PrimoParametro Secondo "Terzo Parametro"

Otterremo come output:

Il primo parametro: PrimoParametro
Il terzo parametro: "Terzo parametro"

Infatti i parametri (che vanno specificati sulla linea di comando separati da spazi o se contengono spazi racchiusi tra virgolette) possono essere richiamati con il simbolo di percentuale seguito dall'indice del parametro. Si badi però che sono disponibili solamente i comandi da 1 a 9, inizialmente, ovvero "%10" non è valido, in quanto verrà interpretato come "%1" seguito da "0". Se si necessita di accedere al decimo parametro (o ai successivi) bisogna servirsi del comando shift che si occupa di spostare gli indici dei parametri in avanti di uno. Quindi inizialmente saranno disponibili i parametri da 1 a 9, dopo la prima chiamata quelli da 2 a 10, dopo la seconda da 3 a 11 e così via (stampa-12.bat):

@echo off
shift
shift
shift
echo Dodicesimo parametro: %9

Da chiamare come segue:

stampa-12.bat 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Vediamo infine alcune possibilità alternative per specificare i parametri (si consideri che al posto del numero 1 può andare qualsiasi indice di parametro valido):

  • %~1: parametro senza virgolette (ad esempio nel primo esempio, "Terzo Parametro");
  • %~f1: restituisce il percorso completo comprensivo di directory del file passato come parametro;
  • %~d1: restituisce la lettera dell'unità della cartella/file passato come parametro;
  • %~p1: restituisce il percorso, esclusa l'unità, in cui si trova il file o cartella passato come parametro;
  • %~n1: restituisce il nome della cartella o del file (senza estensione) passato come parametro;
  • %~x1: restituisce l'estensione del file (comprensivo di punto) passato come parametro;
  • %~s1: restituisce il percorso completo in formato breve (8.3) del file o cartella passato come parametro;
  • %~a1: restituisce gli attributi del file o cartella passato come parametro;
  • %~t1: restituisce la data del file o cartella passato come parametro;
  • %~z1: restituisce la dimensione del file o cartella passato come parametro;
  • %~$PATH:1: restituisce il percorso completo dell'eseguibile passato come parametro, a patto che si trovi nella variabile d'ambiente PATH;
  • %CmdCmdLine%: restituisce l'intera linea di comando;
  • %*: restituisce tutti i parametri;

Queste sintassi possono essere combinate tra loro, ad esempio "%~dp1" restituirà sia lettera dell'unità che percorso. Per meglio comprendere vediamo un esempio completo con relativo responso (esempio.bat):

@echo off
echo %%CmdCmdLine%%:%CmdCmdLine%
echo %%*: %*
echo %%1: %1
echo %%2: %2
echo %%~f1: %~f1
echo %%~d1: %~d1
echo %%~p1: %~p1
echo %%~n1: %~n1
echo %%~x1: %~x1
echo %%~s1: %~s1
echo %%~a1: %~a1
echo %%~t1: %~t1
echo %%~dp1: %~dp1
echo %%~$PATH:2: %~$PATH:2

Proviamo quindi ad effettuare la chiamata seguente (supponendo di trovarci in C:\Cartella e che esista il file prova.txt):

C:\cartella>esempio.bat prova.txt notepad.exe
%CmdCmdLine%:C:\Windows\system32\cmd.exe
%*: prova.txt cmd.exe
%1: prova.txt
%2: cmd.exe
%~f1: C:\cartella\prova.txt
%~d1: C:
%~p1: \cartella\
%~n1: prova
%~x1: .txt
%~s1: C:\cartella\prova.txt
%~a1: --a------
%~t1: 01/01/1980 15:00
%~dp1: C:\cartella\
%~$PATH:2: C:\Windows\System32\notepad.exe

 

<< INDIETRO    


Video collegati Visualizza i video di questa pagina
Visualizza video sull'argomento "lavorare".
Visualizza video sull'argomento "parametri".
Visualizza video sull'argomento "batch".
Visualizza video sull'argomento "lavorare parametri batch".


Dì la tua: cosa ne pensi?
Esponi il tuo punto di vista e condividilo con migliaia di persone

Oggetto nuova discussione:


Testo del messaggio:

E-Mail:

Quanto fa più dieci:




 





^ TOP  
Linkaci | Segnala errore | Invita | Stampa


pubblicità | privacy | visione | diritti | ufficio stampa | donazioni | scrivici
© 1999-2017 - P.IVA 02284690035 - Grafica, layout e contenuti sono di esclusiva proprietà di ArcadiA Club.

Powered by:
Spazi pubblicitari di alto livello
 

Compra in un click! | Cerca prodotti in offerta: