运行 作为计划任务的批处理文件没有正常运行?

Running a batch file as a scheduled task does not behave as it should?

我有一个 jar 文件,它使用 jdbc 连接到 sql 数据库并添加一条新记录。要使用 arg 执行此操作,我将 cmd 行命令放在批处理文件中 运行 它。

现在,如果我手动单击 运行 批处理文件,它可以正常工作,我可以在我的 sql 数据库中看到新记录,但我已经为 [=24= 创建了一个计划任务] 每天给我一次批处理文件,它似乎成功了,但没有新记录添加到数据库中。

关于为什么会发生这种情况有什么想法吗?

批处理文件只有一行,好像我运行的时候还行? :

java -Dvar=daily -jar SQL_JDBC_Bandon.jar

我post这是一个答案,因为它在评论中看起来很难看。

要将执行日志与计划任务的任务执行日志进行比较,请创建与此类似的批处理。

@echo off
echo JDBC executed %DATE% %TIME% >> C:\temp\logs\jdbctask.log
C:
cd \PathToYourJar
C:\Programs\Java\bin\java -version >> C:\temp\logs\jdbctask.log
Dir C:\Programs\Java\bin\java.* >> C:\temp\logs\jdbctask.log
C:\Programs\Java\bin\java -Dvar=daily -jar SQL_JDBC_Bandon.jar >> C:\temp\logs\jdbctask.log

这可确保您不依赖 PATH 或 JAVA_HOME 可能未为您 运行 批处理的用户设置的变量。请根据您的需要调整路径。 如果仍然失败,post 日志文件的结果。

我不久前就弄明白了,但我所做的只是将这两行放在一个 .bat 文件中,它作为计划任务运行时没有任何问题:

cd C:\Users\SQLService\Desktop\ScadaCalcs
java -Dvar=daily -jar SQL_JDBC_Bandon.jar

需要注意的一件事是 jar 和脚本都在 ScadaCalcs 目录中,但我必须 cd 一个绝对路径才能工作。