mercoledì 19 dicembre 2018

Script Batch con parametri nominali

Buongiorno a tutti, eccoci oggi a parlare di un altro argomento di scripting ultra-classico:
i parametri con nome. Pronti?

Vuoi sapere come usare gli slash per assegnare i parametri di un file .bat?


Vuoi sapere come passare parametri/variabili ad uno script senza bisogno di rispettare un ordine preciso?


Vuoi che i tuoi script batch risultino professionali a chi li usa?


Ecco lo script che fa per te. Vediamo insieme:

Come usare i parametri nominali con batch.

In sostanza qui si tratta di permettere di inserire parametri così:

ilmioscript.bat /nomeDir:cartella1 /numFiles:25

invece che così:

ilmioscript.bat cartella1 25

Ma quanto fa più "figo" richiamare uno script nel primo modo? 

E inoltre NON CI SI DEVE RICORDARE LA POSIZIONE DEI PARAMETRI!

La cosa è molto molto semplice in realtà e non so davvero perchè nessuno lo faccia, in giro per il mondo...
.. basta parsare il parametro "%*", che contiene TUTTI I PARAMETRI passati allo script nella command line e quindi "splittare" per slash (" / ") e per due punti (" : "), usando il trick delle variabili con nome dinamico (spiegate in quest'altro mio POST).


Ma bando alle ciance, vediamo come si fa:


@echo off
setlocal enabledelayedExpansion

FOR %%x IN (%*) DO (
    set riga=%%x
    FOR /F "delims=/: tokens=1,2,*" %%a IN ("!riga!") DO (
        set %%a=%%b
        REM echo %%a e' Uguale a %%b ?
    )
)
echo nick=!nick!
echo nome=!nome!
echo cognome=!cognome!
echo.







Come avete visto, passando tutti i parametri (separati da spazio, comportamento di default del ciclo FOR) in %* e poi "splittandoli" con il metodo del "nested for" (come già visto per altro nel mio mitico POST: Come prendere l'output di un comando e impostarlo come variabile), definendo qindi tutto ciò che sta prima dei " : " come NOME della variabile e tutto ciò che sta dopo come VALORE... ecco raggiunto il nostro scopo con pochissimo sforzo...

Da oggi, se dovete parametrizzare qualcosa in batch sono convintissimo che userete questo metodo: è troppo più comodo e bello!


Happy Scripting a tutti e Buone Feste!

Nessun commento:

Posta un commento

I commenti sono soggetti a moderazione, prima di essere pubblicati.

Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.