Я использую следующий .cmd, чтобы получить значения, возвращаемые одним предложением sql.
@echo off
SET SERVER=.\SQLExpress
SET SQLCMD="C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe"
for %%f in (%SQLCMD%) do set alternatepath=%%~sf
SET EXEC_LINE=%alternatepath% -S %SERVER% -d SkpMaster -h-1 -Q "set nocount on; select distinct id from sometable "
for /F "usebackq delims=" %%i in (`%EXEC_LINE%`) do (
set count=%%i
echo %count%
)
if not defined count (
echo Failed to execute SQL statement 1>&2
)
SQL возвращает 4 вхождения, но эхо печатает в 4 раза больше вхождения 1º.
Возможно, я неправильно использую опцию "delims=", я также тестировал "tokens=*" с тем же результатом. Есть идеи?