6

从任务计划程序运行批处理文件无法使用 .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%
4

8 回答 8

11

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

任务管理器不是那么好。

因此,为了让您的任务正常工作,请像这样安排它(从记忆中,而不是现在在 Windows 机器上):

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

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

pushd %~dp0
REM .... The original batch file goes here ....
popd

/d最后,您可以通过在之后添加以下内容来禁用 CMD 自动运行条目cmd

cmd /d /c "c:\full\path\to\your\batchfile.bat"
于 2013-10-10T19:53:06.300 回答
8

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

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

因此,对于最后一个,如果您有 'C:\Users\Desktop\script.py',只需在 'Start in (optional):' 字段中输入 'C:\Users\Desktop\'

于 2014-01-26T17:05:47.563 回答
3

对我有用的是作为“用户”(计算机名\用户)运行任务。一旦我这样做了,并检查了“以最高权限运行”,它就可以顺利运行。

于 2014-07-22T21:46:06.507 回答
1

在批处理文件中提供 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 另外,在任务计划程序的“条件”选项卡中要小心 - 确保取消选中“仅在计算机使用交流电源”

于 2015-03-24T17:10:25.997 回答
0

我有同样的问题,为了解决它,我将下一个命令行放入批处理文件中:

cd "CURRENT_DIRECTORY"

whereCURRENT_DIRECTORY是批处理文件所在的目录。

示例:假设我的批处理文件名为test.bat 位于c:\windows\system32\mytest

在我的 test.bat 文件中,我介绍了下一个命令行:

cd c:\windows\system32\mytest

于 2021-06-25T10:09:12.973 回答
0

所有其他方法都对我不起作用,我遵循了本指南: http ://richardstk.com/2012/06/15/scheduled-task-to-run-a-batch-file/#comment-6873

为了让批处理文件运行,我必须将“程序\脚本”框设置为只包含脚本的名称(即 script.bat),并在“开始于”中设置脚本的文件夹路径(可选)“框

于 2015-08-13T10:42:41.837 回答
0

一位同事发现他的一些东西不工作,我已经在我的系统上验证了这个不工作的情况如下:

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

现在运行任务。

验证批次应该做什么,确实发生了。

然后更改为单选按钮返回到“无论用户是否登录都运行。”

这为我们俩解决了一个我们已经单独工作了几个小时的问题。

旁注:在我们的每个案例中,这两个问题都试图引出第 3 方 FTP 应用程序(分别为 WinSCP 和 WinFTP)。常规的“内部”批处理/任务没有问题。

于 2017-05-17T19:09:20.413 回答
0

我从批处理文件所在文件夹的“属性”中的“安全”选项卡中向用户“所有人”授予了完全权限。它开始工作了。

于 2015-11-18T08:44:42.530 回答