FOR で仕様する %%I 変数、バッチファイルの引数の %0~%9 を参照するとき、次のようなオプション文字を付加することで、ファイルのパスと解釈した時のディレクトリ名やファイル名だけを取り出すことができます。
dirname
相当)
ディレクトリ部分を取り出す処理(%%~dpI とすると %%I のドライブ文字+ディレクトリ部分を抽出できます。
[c:tmp]
$ type dirname.cmd
@echo off
for %%I IN ( c:\path\to\file ) do set "DIRNAME=%%~dpI"
echo %DIRNAME%
[c:tmp]
$ dirname
c:\path\to\
basename
相当)
ファイル名部分のみを取り出す処理(同じ要領で、%%~dp のところを %%~nx(ファイル名+拡張子)か %%~n(拡張子のないファイル名)にすれば Ok です。
%~ の後の「英小文字」は変数の中身を加工する意味があるので、変数名自身は「英大文字」にしておくことが推奨されています。