通过任务调度程序安排批处理脚本

时间:2014-08-22 15:12:52

标签: batch-file

我有下面的脚本,它有输出和日志重定向以及写入日志和错误文件的日期和tiem。我正在使用.cmd扩展名保存此脚本。手动当我尝试通过命令提示符运行此脚本时,它运行完美,首先在输出和错误日志中写入当前日期和时间,然后开始记录日志。但是当通过任务计划进行调度时,它只会将当前日期和时间写入日志,但不会记录实际日志。有人可以告诉我如何以这种方式安排这个脚本,它将首先记录当前的日期和时间,然后开始记录日志。

Echo Date:%date% Time:%time% >> error.txt
    @echo off 
    (
    Echo Date:%date% Time:%time%
            start "" /wait /b "D:\ITSMaaS\BTscripts\capgemini\BESExtract\bin\BES_EXTRACT.exe" "-f D:\ITSMaaS\BTscripts\capgemini\BESExtract\conf\BES_EXTRACT.CONF"
             :loop
            for /f "tokens=2 delims=: " %%a in ('tasklist ^| find "BES_EXTRACT.exe"' ) do (
                if "%ERRORLEVEL%"=="0" (
                    ping -n 10 localhost > nul 2>nul
                    goto loop
                )
            )
            start "" /wait /b "D:\ITSMaaS\BTscripts\capgemini\BESExtract\bin\BES_DATA_MAP.exe" "-f D:\ITSMaaS\BTscripts\capgemini\BESExtract\conf\BES_DATA_MAP.conf"
        ) >> Output.txt 2>> error.txt

2 个答案:

答案 0 :(得分:0)

在批处理文件上使用重定向。为了输出两个文件的日期和时间,您可以使用以下技术:

ECHO Date:%date% Time:%time%
1>&2 ECHO Date:%date% Time:%time%

第一个ECHO将写入标准输出,该输出将被应用于批处理文件的>> Output.txt捕获。第二个ECHO将写入标准错误,该输出将被2 >> error.txt重定向。

如果您担心值可能略有不同(可能是百分之一秒),您可以先将输出字符串存储到变量中:

SET "datetime=Date:%date% Time:%time%"
ECHO %datetime%
1>&2 ECHO %datetime%

答案 1 :(得分:0)

设置'program / script':'yourfile.bat' WITH WITH PATH

设置'开始'路径的其余部分