Windows Server任务计划程序(Windows Server Task Scheduler)

编程入门 行业动态 更新时间:2024-10-26 00:19:32
Windows Server任务计划程序(Windows Server Task Scheduler)

我有一个批处理文件,我想安排运行。 Bellow是批处理文件。

@ECHO OFF SET LOGFILE_DATE=%DATE:~4,2%.%DATE:~7,2%.%DATE:~10,4% SET LOGFILE_TIME=%TIME:~0,2%.%TIME:~3,2% SET LOGFILE="C:\N-able\Projects\AML\NDB_Bank\devinda\AML_Data_Auto-%LOGFILE_DATE%-%LOGFILE_TIME%.log" call :Logit >> %LOGFILE% exit /b 0 :Logit set "firstLine" for /f "tokens=*" %%A in (C:\AML_handshake.txt) do ( If not defined firstLine set "firstLine=%%A" set Lastline=%%A ) set "datevalue=%firstLine:~9,10%" REM *** FIRST CHECK *** if "EOF" NEQ "%Lastline%" goto fail REM *** SECOND CHECK *** set day=-1 echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a" del "%temp%\%~n0.vbs" set "YYYY=%result:~0,4%" set "MM=%result:~4,2%" set "DD=%result:~6,2%" set "data=%dd%-%mm%-%yyyy%" if "%data%" NEQ "%datevalue%" goto fail goto prog :prog echo Incremental Data Extraction - Started sqlplus -s ***@//**.**.**.**:****/*** @call_proc.sql echo Incremental Data Extraction - Ended echo Generating AML Files - Started start "C:\Extractor" TableExtractor.exe echo Generating AML Files - Ended :fail echo Process Completed

AML_handshake.txt将在凌晨4:00传输到服务器。 我安排我的工作在凌晨4:30运行。 我的问题是由于某种原因,AML_handshake.txt文件在凌晨4点不可用,并且文件在凌晨4:30之后传输,如何从调度程序运行我的作业? 这项工作应该只在一天内运行一次。

I have a batch file which I want to schedule to run. Bellow is the batch file.

@ECHO OFF SET LOGFILE_DATE=%DATE:~4,2%.%DATE:~7,2%.%DATE:~10,4% SET LOGFILE_TIME=%TIME:~0,2%.%TIME:~3,2% SET LOGFILE="C:\N-able\Projects\AML\NDB_Bank\devinda\AML_Data_Auto-%LOGFILE_DATE%-%LOGFILE_TIME%.log" call :Logit >> %LOGFILE% exit /b 0 :Logit set "firstLine" for /f "tokens=*" %%A in (C:\AML_handshake.txt) do ( If not defined firstLine set "firstLine=%%A" set Lastline=%%A ) set "datevalue=%firstLine:~9,10%" REM *** FIRST CHECK *** if "EOF" NEQ "%Lastline%" goto fail REM *** SECOND CHECK *** set day=-1 echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a" del "%temp%\%~n0.vbs" set "YYYY=%result:~0,4%" set "MM=%result:~4,2%" set "DD=%result:~6,2%" set "data=%dd%-%mm%-%yyyy%" if "%data%" NEQ "%datevalue%" goto fail goto prog :prog echo Incremental Data Extraction - Started sqlplus -s ***@//**.**.**.**:****/*** @call_proc.sql echo Incremental Data Extraction - Ended echo Generating AML Files - Started start "C:\Extractor" TableExtractor.exe echo Generating AML Files - Ended :fail echo Process Completed

The AML_handshake.txt is transferred to the server at 4:00AM. And I schedule my job to run at 4:30AM. My question is for some reason the AML_handshake.txt file is not available at 4:00AM and the file transferred after 4:30AM, how is it possible to run my job from the scheduler? And the job should run only once with-in a day.

最满意答案

把它放在文件的顶部。 它将检查文件,如果它不存在,则等待30分钟或直到输入。

@ECHO OFF :retest if exist C:\AML_handshake.txt ( goto :validfile ) else ( Echo File does not exist timeout 1800 goto :retest ) :validfile

整个代码看起来像这样。

@ECHO OFF :retest if exist C:\AML_handshake.txt ( goto :validfile ) else ( Echo File does not exist timeout 1800 goto :retest ) :validfile SET LOGFILE_DATE=%DATE:~4,2%.%DATE:~7,2%.%DATE:~10,4% SET LOGFILE_TIME=%TIME:~0,2%.%TIME:~3,2% SET LOGFILE="C:\N-able\Projects\AML\NDB_Bank\devinda\AML_Data_Auto-%LOGFILE_DATE%-%LOGFILE_TIME%.log" call :Logit >> %LOGFILE% exit /b 0 :Logit set "firstLine" for /f "tokens=*" %%A in (C:\AML_handshake.txt) do ( If not defined firstLine set "firstLine=%%A" set Lastline=%%A ) set "datevalue=%firstLine:~9,10%" REM *** FIRST CHECK *** if "EOF" NEQ "%Lastline%" goto fail REM *** SECOND CHECK *** set day=-1 echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a" del "%temp%\%~n0.vbs" set "YYYY=%result:~0,4%" set "MM=%result:~4,2%" set "DD=%result:~6,2%" set "data=%dd%-%mm%-%yyyy%" if "%data%" NEQ "%datevalue%" goto fail goto prog :prog echo Incremental Data Extraction - Started sqlplus -s ***@//**.**.**.**:****/*** @call_proc.sql echo Incremental Data Extraction - Ended echo Generating AML Files - Started start "C:\Extractor" TableExtractor.exe echo Generating AML Files - Ended :fail echo Process Completed

Throw this at the top of your file. It will check for the file and if it does not exist, waits 30 minutes or until input.

@ECHO OFF :retest if exist C:\AML_handshake.txt ( goto :validfile ) else ( Echo File does not exist timeout 1800 goto :retest ) :validfile

Entire code would look like this.

@ECHO OFF :retest if exist C:\AML_handshake.txt ( goto :validfile ) else ( Echo File does not exist timeout 1800 goto :retest ) :validfile SET LOGFILE_DATE=%DATE:~4,2%.%DATE:~7,2%.%DATE:~10,4% SET LOGFILE_TIME=%TIME:~0,2%.%TIME:~3,2% SET LOGFILE="C:\N-able\Projects\AML\NDB_Bank\devinda\AML_Data_Auto-%LOGFILE_DATE%-%LOGFILE_TIME%.log" call :Logit >> %LOGFILE% exit /b 0 :Logit set "firstLine" for /f "tokens=*" %%A in (C:\AML_handshake.txt) do ( If not defined firstLine set "firstLine=%%A" set Lastline=%%A ) set "datevalue=%firstLine:~9,10%" REM *** FIRST CHECK *** if "EOF" NEQ "%Lastline%" goto fail REM *** SECOND CHECK *** set day=-1 echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a" del "%temp%\%~n0.vbs" set "YYYY=%result:~0,4%" set "MM=%result:~4,2%" set "DD=%result:~6,2%" set "data=%dd%-%mm%-%yyyy%" if "%data%" NEQ "%datevalue%" goto fail goto prog :prog echo Incremental Data Extraction - Started sqlplus -s ***@//**.**.**.**:****/*** @call_proc.sql echo Incremental Data Extraction - Ended echo Generating AML Files - Started start "C:\Extractor" TableExtractor.exe echo Generating AML Files - Ended :fail echo Process Completed

更多推荐

本文发布于:2023-08-06 21:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1455421.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:计划   程序   Server   Windows   Task

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!