Недавно я включил строку, похожую на нее в файле .cmd:
for /f %%f in ('dir /b .\directory\*.sql') DO sqlcmd -b -o ".\directory\output\%%f.txt" -i ".\directory\%%f"
Первоначально я использовал только% f, и он работал нормально, когда запускался в командной строке, но не при прохождении через файл. Когда я переключился на %% f, он работал в файле. Просто интересно, какая разница.