【发布时间】:2014-08-01 15:37:41
【问题描述】:
我有一个每周运行的批处理作业来计算员工在一周内花费的钱。
WriteToDBIndex 是一个 C# 程序,用于检查其他流程,例如财务是否已完成数据处理(即输入所有员工的支出数据)。如果是,WriteToDBIndex,如果输入了所有数据,则在emptablestat 表中写入一行JobStatusName 和status。
我需要继续检查,直到 FINANCE & empstatus=1 的计数为 1。我设置了 3600 秒的超时时间。
@ECHO OFF
set ERRORLEVEL=0
REM start "" "C:\WriteToDBIndex.exe"
:gobackloop
set ct=0
if %ERRORLEVEL% NEQ 0 (
Echo There has been an error.
goto end
)
if %ERRORLEVEL% EQU 0 (
Echo inside errorlevel zero
for /F "usebackq" %%i in (`sqlcmd -E -S "MYDATA\MYDB" -h-1 -Q "SELECT COUNT(*) FROM [dbo].[emptablestat] where JobStatusName like '%FINANCE%' and empstatus=1"`) do set ct=%%i
if %ct% EQU 1 (
echo starting 1
start "" "C:\CalculateMoneySpent.exe"
timeout /t 60
)
if %ct% EQU 0 (
timeout /t 3600
goto :gobackloop
)
)
:end
echo END
REM cd ..
即使在emptablestat 表中的计数为 1 之后,变量 ct 的值也总是为零。我不知道为什么。
谢谢 回复
【问题讨论】:
标签: c# batch-file