.: HosiriS :.

Informatica e non solo

Un salto nel passato: come passare variabili ad uno script batch

Posted by hosiris su giugno 11, 2010

Ogni programma prevede il passaggio di parametri dall’esterno… proprio ieri mi si è presentato il problema di dover gestire dei valori da passare a dei batch, ma come fare?
Diversamente dal C, che ha un puntatore apposito, il DOS ci permette di richiamare tali valori con la sintassi “%n” dove n è un numero che rappresenta la posizione della variabile (con %0 ricaviamo il valore del file chiamato).
E’ possibile manipolare tali variabili, secondo il seguente schema:

  • %~1 sostituisce il parametro %1 rimuovendo le virgolette;
  • %~f1 sostituisce il parametro %1 con il percorso completo;
  • %~d1 sostituisce il parametro %1 con la lettera di unità;
  • %~p1 sostituisce il parametro %1 con il solo percorso;
  • %~n1 sostituisce il parametro %1 con il nome del file;
  • %~x1 sostituisce il parametro %1 con la sola estensione del file;
  • %~s1 sostituisce il parametro %1 con i nomi brevi;
  • %~a1 sostituisce il parametro %1 con gli attributi del file;
  • %~t1 sostituisce il parametro %1 con la data e ora del file;
  • %~z1 sostituisce il parametro %1 con la dimensione del file;

Non vi rimane che fare delle prove.
Buon divertimento

PS: rileggendo mi sono accorto che un esempio non guasterebbe:

set nome_var=%1
echo %nome_var%

salviamo questo codice come “dimmi.bat”
Poi da cmd diamo:

c:\> dimmi.bat "CIAO"

ed ecco che il PC vi risponde…

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: