использовать модификаторы (описанные в for /?
):
for /f "tokens=*" %%a in ('dir mysqld.exe /b /s') do set "mysql=%%~dpa"
echo %mysql%
%%~dpa
возвращает d rive и p только через ath.
То же самое без использования dir
(так как for /r
может рекурсивно искать файл (ы)):
for /r "c:\startfolder" %%a in (mysqld.exe) do set "mysql=%%~dpa"
"c:\startfolder"
является начальной точкой для рекурсивного поиска (вы можете опустить его дляпоиск в текущей папке и ее подпапках)
Примечание: если имеется более одного совпадающего файла, переменная будет содержать последний результат.