我有下面的脚本,如果手动执行,它可以正常工作,但如果在任务调度程序中设置为任务,则不能工作。
我怀疑一个参数可能没有被正确设置,但无法发现它。有人能帮我一下吗。
@echo off
setlocal EnableDelayedExpansion
cls
set AllSections=
Set Action=
rem set PARMS=-Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dsikuli.FromCommandLine
rem set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202
rem set SIKULIX_HOME=%~dp0
set CurrentDate=%Date%
set CurrentTime=%Time: =0%
set CurrentTime=%CurrentTime:~0,8%
set DateTimeStamp=%CurrentDate:~6,4%-%CurrentDate:~3,2%-%CurrentDate:~0,2%_%CurrentTime:~0,2%-%CurrentTime:~3,2%-%CurrentTime:~6,2%
set FolderTimeStamp=%CurrentDate:~3,2%-%CurrentDate:~6,4%
set DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%
md DestinationFolder=SCADA\Output > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp% > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp% > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%\Settings > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%\Alarms > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%\Network > nul 2>&1
rem Create Settings file
rem echo "Hello world" > %cd%\aa.txt
rem \\\--below instructions working as script from command prompt , but not from task scheduler
C:\sikulix\sikulixapi-2.0.5-win.jar -r C:\sikulix\Scada\Settings.sikuli
C:\sikulix\sikulixapi-2.0.5-win.jar -r C:\sikulix\Scada\Alarms.sikuli
C:\sikulix\sikulixapi-2.0.5-win.jar -r C:\sikulix\Scada\Networks.sikuli
rem /////
ENDLOCAL
:End我突出显示了不工作的位;文件夹的设置是正确的,但是java部分在任务调度器中无法执行。
发布于 2022-08-14 15:18:36
脚本在您的帐户中运行,因为您已经设置了.jar,以便文件扩展名java映射到java应用程序。如果任务调度程序帐户没有将.jar映射到java应用程序,那么它将无法工作。
重写脚本,使用jars在行前加上有效的Java运行时(如%JAVA_HOME%/bin/java ),并确保定义了JAVA_HOME,或者检查任务调度程序帐户是否将.jar处理映射到合适的JVM。示例:
xyz.jar param1 param2 ...变成了
%JAVA_HOME%\bin\java --class-path xyz.jar param1 param2 ..在Windows中,您可以使用右键->属性检查映射,然后查看"Open:“字段。
https://stackoverflow.com/questions/73352620
复制相似问题