I file batch (ovvero con estensione .BAT) delle ultime versioni di Windows supportano una gestione avanzata dei parametri passati dalla linea di comando.
Oltre ai già presenti riferimenti %n sono stati introdotti dei nuovi modificatori che iniziano con %~xxn.
Tenete presente che n rappresenta un numero che indica la posizione dei parametri digitati nella linea di comando (0 per il file stesso, 1 per il primo parametro, 2 per il secondo e così via) e i xx rappresentano le opzioni che si possono utilizzare.
Per una spiegazione completa dei parametri è sufficiente digitare da line adi comando:
CALL /?
un esempio del funzionamento dei parametri si può vedere eseguendo il seguente file test.bat:
@echo off
echo ================================
echo Il comando............... %%0    : %0
echo Drive corrente........... %%~d0  : %~d0
echo Percorso corrente........ %%~p0  : %~p0
echo Drive e percorso corrente %%~dp0 : %~dp0
echo e ancora il file bat..... %%~nx0 : %~nx0
echo Solo il nome............. %%~n0  : %~n0
echo Solo l'estensione........ %%~x0  : %~x0
echo ================================
echo Il parametro............. %%1    : %1
echo senza le virgolette...... %%~1   : %~1
echo Il percorso completo..... %%~f1  : %~f1
echo Il nome del file......... %%~nx1 : %~nx1
echo e nel formato breve...... %%~snx1: %~snx1
echo Gli attributi del file... %%~a1  : %~a1
echo La data e ora del file... %%~t1  : %~t1
echo La dimensione del file... %%~z1  : %~z1
echo Riga stile comando DIR... %%~ftza: %~ftza1
per eseguirlo digitare
C:\BAT>test.bat "UnNomeLungo.txt"
ovviamente deve esistere un file di nome "UnNomeLungo.txt", e da un output simile a questo:
================================
Il comando............... %0    : test.bat
Drive corrente........... %~d0  : C:
Percorso corrente........ %~p0  : \BAT\
Drive e percorso corrente %~dp0 : C:\BAT\
e ancora il file bat..... %~nx0 : test.bat
Solo il nome............. %~n0  : test
Solo l'estensione........ %~x0  : .bat
================================
Il parametro............. %1    : "UnNomeLungo.txt"
senza le virgolette...... %~1   : UnNomeLungo.txt
Il percorso completo..... %~f1  : C:\BAT\UnNomeLungo.txt
Il nome del file......... %~nx1 : UnNomeLungo.txt
e nel formato breve...... %~snx1: UNNOME~1.TXT
Gli attributi del file... %~a1  : --a------
La data e ora del file... %~t1  : 01/12/2006 22.07
La dimensione del file... %~z1  : 27
Riga stile comando DIR... %~ftza: --a------ 01/12/2006 22.07 27 C:\BAT\UnNomeLungo.txt
I file batch sono sempre stati molto sottovalutati ;-) ... il futuro dello script su windows, Monad oops scusate Power Shell.