Попробуйте:
set timehour=%time:~0,2%
sqlcmd -S INSTANCENAME -i c:\Users\name\Desktop\test.sql -o c:\Users\name\Desktop\name-%date:~-4,4%%date:~-10,2%%date:~-7,2%-%timehour: =0%%time:~3,2%.csv
Вы можете просмотреть результат, используя Echo
set timehour=%time:~0,2%
echo name-%date:~-4,4%%date:~-10,2%%date:~-7,2%-%timehour: =0%%time:~3,2%.csv
% date% возвращает текущую дату в коротком формате. Часть ": ~ 6,4" похожа на функцию SUBSTRING, которая возвращает 4 символа, начиная с позиции 6, которая возвращает Year. Аналогично, извлекаем месяц, день, час, минуты, используя ту же функцию, и добавляем все это вместе, чтобы сгенерировать имя файла в формате «имя-ГГГГММДД-ЧЧММ»