Во внутреннем For параметры воспринимаются им как "список" по которому он итерирует
Следует писать так
For /F %%# in ('%~dp0identify.exe -ping -format %%[fx:w] *.webp') DO SET /A "Width=%%#"
Ординарные кавычки вокруг записи команды.
Немножко непонятно почему имя файла из dir (%n) не используется