Windows 从任务计划程序运行批处理文件不使用java命令

Windows 从任务计划程序运行批处理文件不使用java命令,windows,batch-file,scheduled-tasks,Windows,Batch File,Scheduled Tasks,“从任务计划程序运行批处理文件”无法使用.bat文件中的java命令。如果我手动运行.bat文件,它工作正常 这是我试图安排的简单的.bat文件 set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_24; set CMD= "%JAVA_HOME%\bin\java" -version echo %CMD% %CMD% 在命令行中键入batchfile.bat时,您告诉cmd.exe读取文件并执行其中找到的每一行。当您在资源管理器中双击批处理

“从任务计划程序运行批处理文件”无法使用.bat文件中的java命令。如果我手动运行.bat文件,它工作正常

这是我试图安排的简单的.bat文件

set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_24;
set CMD= "%JAVA_HOME%\bin\java" -version

echo %CMD%
%CMD%

在命令行中键入
batchfile.bat
时,您告诉
cmd.exe
读取文件并执行其中找到的每一行。当您在资源管理器中双击批处理文件时,它会在读取注册表中的文件关联后为您调用
cmd.exe

任务管理器不是那么好

因此,要使任务正常工作,请按如下方式安排(从内存中,而不是现在在Windows框中):

为了获得更高的健壮性,您可以通过在顶部添加以下内容,确保批处理文件从已知目录(如它所在的目录)运行:

pushd %~dp0
REM .... The original batch file goes here ....
popd
最后,您可以通过在
CMD
之后添加
/d
来禁用CMD自动运行输入,如下所示:

cmd /d /c "c:\full\path\to\your\batchfile.bat"

如果ixe013的建议不起作用,请转到

'Actions'
'Edit' the task
'Start in (optional):'  Put the path to the directory  where the script is

因此,对于最后一个,如果您有“C:\Users\Desktop\script.py”,只需在“起始位置(可选):”字段中输入“C:\Users\Desktop\”

对我有效的是以“用户”(computername\Users)身份运行任务。一旦我这样做了,并且选中了“以最高权限运行”,它就可以顺利运行。

在批处理文件中给出了java.exe的完整路径,为我修复了它。在记事本中,我键入了以下行:

"C:\Program Files\Java\jdk1.8.0_40\bin\java.exe" -jar "C:\Users\usernameXXXX\Documents\NetBeansProjects\JavaApplication5\dist\JavaApplication5.jar"
将其另存为app1.bat文件(C:\temp\app1.bat)

在任务计划程序的“操作”选项卡中,提供批处理文件的路径,即C:\temp\app1.bat
另外,在任务计划程序的“条件”选项卡中要小心-确保取消选中“仅在计算机使用交流电源时启动任务”

所有其他方法都不适用于我,我遵循了以下指南:


为了让批处理文件运行,我必须将“Program\script”框设置为只包含脚本名称(即script.bat),并在“Start In(可选)”框中设置脚本的文件夹路径。我从保存批处理文件的文件夹的属性中的“安全”选项卡向用户授予了所有人的完全权限。它开始工作了。

一位同事在他拥有的不起作用的东西上发现了什么,我在我拥有的不起作用的系统上验证了以下内容:

初始设置整个任务时,您必须首先使用单选按钮“仅当用户登录时运行”。它将要求您输入更改密码

现在运行任务

验证该批次应执行的操作是否确实发生

然后将单选按钮改回“无论用户是否登录都运行”

这为我们两人解决了一个问题,我们已经各自工作了几个小时


旁注:这两个问题也试图引出第三方FTP应用程序(分别为WinSCP和WinFTP)在我们的每一个案例中“批处理/任务没有任何问题。

它可能正在运行,您只是看不到输出。您在哪个用户下运行任务+感谢您提供SSCCE。感谢您的回复。我试图运行的用户具有管理员权限。不确定我是否使用任务调度器正确地调度它。我已将操作设置为“启动程序”,并在程序/脚本部分指定了上述操作的完整路径。bat文件我安排了其他简单java程序,java程序在运行时生成日志,但我根本看不到日志。这仍然没有解决我的问题-似乎有效的是作为系统用户运行(以设置的最高权限运行)。(我也尝试过以网络服务的形式运行,但没有成功)Interresting,@Jamesmccormack。你犯了什么错误?您使用的命令行是什么?您选择的用户是否具有运行java.exe的权限或环境设置?为一个问题提供更好的答案永远不会晚。这很有效,但是我还应该添加用户可能需要将正确的目录添加到“开始位置”字段,具体取决于批处理文件的编写方式。
"C:\Program Files\Java\jdk1.8.0_40\bin\java.exe" -jar "C:\Users\usernameXXXX\Documents\NetBeansProjects\JavaApplication5\dist\JavaApplication5.jar"