我在.bat文件中具有以下脚本:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%a in ('sqlcmd -S RCOVSVR3742 -d FRK -E -Q "SET NOCOUNT ON;SELECT count(*) FROM [FRK].[dbo].[interface_log] where interfaceid = '1F88027F-44A0-4089-B6C2-129E9206E478' and cast(idata_stamp as date) = dateadd(dd,-2,cast(getdate() as date))
and idata is not null"')
do set ColumnVar=%%a
echo %ColumnVar%
pause
当我通过批处理脚本运行以上代码时,命令窗口不会停止。
已尝试的选项:
我正在脚本中提到的服务器上运行脚本。
有人可以帮助我实现这一目标吗?
答案 0 :(得分:1)
作为我的评论的补充,我相信您提供的代码应该是这样的:
@Echo Off
For /F %%a In (
'sqlcmd.exe -S RCOVSVR3742 -d FRK -E -Q "SET NOCOUNT ON;SELECT count(*) FROM [FRK].[dbo].[interface_log] where interfaceid = '1F88027F-44A0-4089-B6C2-129E9206E478' and cast(idata_stamp as date) = dateadd(dd,-2,cast(getdate() as date)) and idata is not null"'
) Do Set "ColumnVar=%%a"
Echo(%ColumnVar%
Pause
请首先尝试上述操作,以确保换行符,基本批处理文件语法或批处理文件的名称不是问题。
我怀疑您可能已将脚本命名为sqlcmd.bat
或sqlcmd.cmd
。如果有,上面的代码将解决您的问题。尽管我仍然建议您也将其重命名为还不是可执行文件名的文件。
答案 1 :(得分:0)
尝试在批处理文件的末尾添加exit
命令。
答案 2 :(得分:0)
您可以删除以下行:
setlocal enabledelayedexpansion enableextensions
并在末尾添加:
exit /b An error code-Optional