Windows 10 任务计划程序不运行 Octave 文件

Windows 10 任务计划程序不运行 Octave 文件

我想在 Windows 10 上使用 GNU Octave 5.2 运行一个复杂的 m 文件。我将其精简为一个非常简单的示例,但它也不起作用:

C:\test\start_test.bat:

call C:\Tools\Octave\mingw64\bin\octave-cli.exe C:\test\write_file.m
Rem call C:\Tools\Octave\mingw64\bin\octave.bat C:\test\write_file.m

... 和 C:\test\write_file.m 来获取一些调试输出,因为我不知道任务是否真的运行了:

runtime = strftime ("%Y-%m-%d-%H-%M-%S", localtime (time ()));

disp('write file-1 with relative path' );
fileID = fopen(['run-',runtime,'-1.txt'],'w');
fprintf(fileID,'foo');
fclose(fileID);

disp('write file-2 with absolute path');
fileID = fopen(['C:\test\run-',runtime,'-2.txt'],'w');
fprintf(fileID,'foo');
fclose(fileID);

disp('... done');

如果我在 Windows 命令行上运行 bath 文件(使用与任务计划程序中相同的用户),它就会正常工作。Windows 用户是非特权用户。我在 bat 文件中运行其他 exe 或 python 脚本以及使用旧版 Windows 运行 octave m 文件时没有遇到任何问题。在任务计划程序中,我目前不使用触发器,我只想手动使用 bat 文件运行任务并尝试了这些可能性,但总是得到 (0x1) 的返回值并且没有写入测试文件:

  • 以最高权限运行
  • 不要运行bat文件,而是直接在“操作”选项卡中输入octave的路径
  • 将 bat 文件中的“call”更改为“start”或不更改任何内容(仅使用普通命令)

A类似主题我开始回答的问题没有帮助。

答案1

在 bat 脚本中你必须先进入另一个脚本的目录,因此该 bat 文件如下所示(就我而言):

cd C:\test\
call C:\Tools\Octave\mingw64\bin\octave-cli.exe C:\test\write_file.m

这很奇怪,因为所有路径都是绝对的,以避免这些问题。

相关内容