Citar
Pues yo no entiendo esto:
%%~ni
Eso son los modificadores de archivos, mira te dejo una lista, en el ejemplo que has puesto se llama %%~ni porque la variable de la que quiero el nombre de archivo es %%i.%%~ni
%~f1 - regresa la ruta y el archivo de %1.
%~d1 - regresa la letra de la unidad de %1.
%~p1 - regresa solo la ruta del archivo %1.
%~n1 - regresa solo el nombre de archivo %1.
%~x1 - regresa solo la extension del archivo %1.
%~s1 - regresa solo la ruta, con directorios, con nombres cortos del archivo %1.
%~a1 - regresa los atributos del archivo.
%~t1 - regresa la hora/fecha del archivo %1
%~z1 - regresa el tamaño del archivo %1.
Espero que te ayude, te dejo este post con mas info: http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html