Пожалуйста, попробуйте следующее
del temp.txt
del temp1.txt
for /F "usebackq " %%F IN (`dir /b /s /o:n "../Database/*.sql"`) DO (
echo %%~nF / %%F >> temp.txt
)
sort temp.text temp1.text
for /F "tokens=1,2 delims=/" %%i IN (temp1.txt) DO sqlcmd -S %1 -d %2 -U %4 -P %5 -i "%%j" >> Logs/%2_DBInstall.log || goto errors
Это должно работать и для рекурсивных каталогов (процесс сортируется по глобальному имени файла без учета пути ... я понял проблему?)
Обратите внимание, что используются два временных файла. Будьте осторожны с именами (или используйте настоящие временные файлы)