从任务计划程序运行批处理文件无法使用 .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%
从任务计划程序运行批处理文件无法使用 .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 机器上):
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"
如果 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\'
对我有用的是作为“用户”(计算机名\用户)运行任务。一旦我这样做了,并检查了“以最高权限运行”,它就可以顺利运行。
在批处理文件中提供 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 另外,在任务计划程序的“条件”选项卡中要小心 - 确保取消选中“仅在计算机使用交流电源”
我有同样的问题,为了解决它,我将下一个命令行放入批处理文件中:
cd "CURRENT_DIRECTORY"
whereCURRENT_DIRECTORY
是批处理文件所在的目录。
示例:假设我的批处理文件名为test.bat 位于c:\windows\system32\mytest
在我的 test.bat 文件中,我介绍了下一个命令行:
cd c:\windows\system32\mytest
所有其他方法都对我不起作用,我遵循了本指南: http ://richardstk.com/2012/06/15/scheduled-task-to-run-a-batch-file/#comment-6873
为了让批处理文件运行,我必须将“程序\脚本”框设置为只包含脚本的名称(即 script.bat),并在“开始于”中设置脚本的文件夹路径(可选)“框
一位同事发现他的一些东西不工作,我已经在我的系统上验证了这个不工作的情况如下:
初始设置整个任务时,您必须最初使用单选按钮“仅在用户登录时运行”。它将要求您输入密码以进行更改。
现在运行任务。
验证批次应该做什么,确实发生了。
然后更改为单选按钮返回到“无论用户是否登录都运行。”
这为我们俩解决了一个我们已经单独工作了几个小时的问题。
旁注:在我们的每个案例中,这两个问题都试图引出第 3 方 FTP 应用程序(分别为 WinSCP 和 WinFTP)。常规的“内部”批处理/任务没有问题。
我从批处理文件所在文件夹的“属性”中的“安全”选项卡中向用户“所有人”授予了完全权限。它开始工作了。