【发布时间】:2014-07-30 09:54:51
【问题描述】:
第 1 步:我有 5 个 C# 程序在星期五晚上使用任务计划程序运行。如果全部成功运行,我将使用程序名称(均以 NAMESEARCH 开头)更新 SQL SERVER 数据库中的状态表,该表以状态 = 1 完成运行。如果有异常,我用程序名和 Status=0 更新 Status 表。
Create table Run_Status(ProgramName varchar(500) not null, Status int not null);
在第2步:编写一个bat文件来运行C#程序(Name.exe) 我的 c# 程序这样做:我检查 Run_Status 表,如果像 'NAMESEARCH%' 这样的程序名的计数为 5。然后检查所有状态是否 =1,然后继续其他处理
我的问题:我如何编写一个每小时运行一次的 bat 文件来检查,直到像 'NAMESEARCH%' 这样的程序名的计数为 5,或者换句话说,步骤 1 完成。
这就是我的 bat 文件中的全部内容
@ECHO OFF
SET Header=-----------------------------------------------------
start "" "C:\Projects\Name\Name\bin\Debug\Name.exe"
echo %ERRORLEVEL%
if %ERRORLEVEL% NEQ 0 (
echo %header%
Echo There has been an error.
echo.
pause
goto end)
if %ERRORLEVEL% EQU 1 (
ECHO Success
goto end
}
:end
REM ----------------------------------------------------------------
echo %header%
echo END
REM cd ..
谢谢 回复
【问题讨论】:
-
不确定我是否理解您的问题。您已经有 5 个定期执行的程序与您的数据库交互,现在您要问如何编写第 6 个程序以定期执行并与数据库交互?在写完前 5 个之后,我会认为这将是一件容易的事。这次有什么不同?
-
@nvoigt,第 6 个程序,由 bat 文件而不是任务调度程序执行。它需要检查是否所有 5 个程序都完成了运行。当我运行 bat 文件(即第 6 个 C# 程序)时,如果我只有 2 条以 NAMESEARCH 开头的记录,那么我希望 bat 文件在 1 小时后再次运行以检查其他 3 个 C# 程序的完成情况。
-
name.exe是否返回任何错误级别或文本输出?含义/内容是什么? -
@MCND,name.exe 是 lucene 索引程序 - 为我从任务调度程序运行的前 5 个程序插入的行构建索引。我只是将异常记录到一个文本文件中。
标签: c# sql-server batch-file