Bueno, primeramente, las dudas sobre Batch, van en Scripting.
Se llaman parámetros posicionales, y se utilizan en la llamada a un archivo batch o en la llamada a una función.
%1 correspone al primer parámetro que le envías.
%2 Al segundo...
%3 Tercero...
...
El %0 es el nombre del archivo batch.
Si yo llamo a un archivo batch, desde el cmd.exe así:
programa.bat "Hola" "mundo"
"Hola" sería el %1,
"mundo" sería el %2
%0 sería "programa.bat"
Ejemplo (code.cmd):
@echo off
Soy el archivo %0
echo Primer parámetro %1
echo Segundo parámetro %2
pause
Y lo llamo así desde la consola:
C:\Users\leo\batch>code.cmd Hola mundo
Soy el archivo code.cmd
Primer parßmetro Hola
Segundo parßmetro mundo
Mezclados [mundo] [Hola]
Presione una tecla para continuar . . .
C:\Users\leo\batch>
Fíjate la salida que obtengo, como ves, es realmente sencillo.
Saludos.