Come altri hanno già detto, è possibile accedere ai parametri passati attraverso la riga di comando in file batch con la notazione %1to %9. Esistono anche altri due token che è possibile utilizzare:
%0è il nome eseguibile (file batch) come specificato nella riga di comando .
%*sono tutti i parametri specificati nella riga di comando - questo è molto utile se si desidera inoltrare i parametri a un altro programma.
Ci sono anche molte tecniche importanti da conoscere oltre a come accedere ai parametri.
Verifica se un parametro è stato passato
Questo viene fatto con costrutti come IF "%~1"=="", il che è vero se e solo se non sono stati passati argomenti. Nota il carattere tilde che provoca la rimozione di eventuali virgolette circostanti dal valore di %1; senza una tilde otterrai risultati imprevisti se quel valore include virgolette doppie, inclusa la possibilità di errori di sintassi.
Gestire più di 9 argomenti (o semplicemente semplificare la vita)
Se è necessario accedere a più di 9 argomenti, è necessario utilizzare il comando SHIFT. Questo comando sposta i valori di tutti gli argomenti di una posizione, in modo che %0prenda il valore di %1, %1prenda il valore di %2, ecc. %9Assume il valore del decimo argomento (se presente), che non era disponibile attraverso nessuna variabile prima di chiamare SHIFT(invio comando SHIFT /?per ulteriori opzioni).
SHIFTè utile anche quando si desidera elaborare facilmente i parametri senza richiedere che siano presentati in un ordine specifico. Ad esempio, uno script può riconoscere le bandiere -ae -bin qualsiasi ordine. Un buon modo per analizzare la riga di comando in questi casi è
:parse
IF "%~1"=="" GOTO endparse
IF "%~1"=="-a" REM do something
IF "%~1"=="-b" REM do something else
SHIFT
GOTO parse
:endparse
REM ready for action!
Questo schema consente di analizzare righe di comando piuttosto complesse senza impazzire.
Sostituzione dei parametri batch
Per i parametri che rappresentano i nomi dei file, la shell offre molte funzionalità relative all'utilizzo di file che non sono accessibili in nessun altro modo. Questa funzionalità è accessibile con costrutti che iniziano con %~.
Ad esempio, per ottenere la dimensione del file passato come argomento utilizzare
ECHO %~z1
Per ottenere il percorso della directory da cui è stato avviato il file batch (molto utile!) È possibile utilizzare
ECHO %~dp0
È possibile visualizzare l'intera gamma di queste funzionalità digitando CALL /?il prompt dei comandi.