我正在使用folling .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 = *”测试了相同的结果。 有什么想法吗?
答案 0 :(得分:0)
在以不同方式处理参数%% i后修复。
@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 call :processline %%i
if not defined count (
echo Failed to execute SQL statement 1>&2
)
pause
goto :eof
:processline
echo line=%*
goto :eof
:eof