Я хочу передать самый первый файл, возвращенный
dir *.png /B
в переменную% firstFile%
Зачем вам нужно dir?
dir
for %%x in (*.png) do if not defined firstFile set "firstFile=%%x"
зачем вам нужно перебирать весь список?
for %%x in (*.*) do ( set "firstFile=%%x" goto :done ) :done
не должно быть:
DIR *.png /B > "%TEMP%\dir" && SET firstFile= < "%TEMP%\dir"
DIR *.png /B > "%TEMP%\dir" && < "%TEMP%\dir" SET firstFile=