Если вы не хотите иметь дело с "кавычками", вы можете использовать переключатель "s" в% ~ dpnx []...
это приведет к получению коротких имен файлов, с которыми легко работать.
из командной строки...
for /f "delims=" %f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %~sdpnxf
внутри файла .CMD/.BAT вам нужно "убежать" от [%], например, удвоить [%%]
for /f "delims=" %%f IN ('dir /b /s "C:\Program Files\*.dll"') do echo %%~sdpnxf