Тщательное:
Использование 'call' (как показано Андреем М) кажется наиболее безопасным вариантом.
Я обнаружил случай, когда добавление начальных и конечных двойных кавычек (как предлагается в качестве возможного решения от jeb) имеет проблему.
Проблема:
for /f "delims=" %%i in ('""C:\path with spaces\hello.bat" "filename with an & ampersand.jpg""') do ( echo output=%%i )
cmd.exe выводит: & was unexpected at this time.
Решение:
for /f "delims=" %%i in ('call "C:\path with spaces\hello.bat" "filename with an & ampersand.jpg"') do ( echo output=%%i )