首页 > 解决方案 > 从批处理文件运行时无法从 Octave 脚本创建 Excel 文件

问题描述

使用 Windows 10、Octave 4.4.1 和 Excel 2016,我有一个 Octave 脚本(称为“MyOctaveProgram.m”),它从文本文件(“MyTextFile.txt”)中获取数据,可以使用 uigetfile 函数加载,但为了更快地访问,我创建了一个批处理文件:

@echo off
C:\Octave\Octave-4.4.1\octave.vbs --force-gui --eval MyOctaveProgram("'%~d0%~p0'","'%~n0'")
cmd /c

.bat 文件与 .txt 文件具有相同的名称,但扩展名不同。

到目前为止,一切正常,我可以通过 GUI 命令行或批处理文件执行 MyOctaveProgram.m 的一部分。当我尝试使用在 Excel(使用 COM 接口)中创建数据表的代码的一部分时,差异就出现了,使用

xls=xlsopen(ExcelFile)
xls=oct2xls(data...)
xls=oct2xls(more data...)
xls=oct2xls(etc...)
xlsclose(xls)

当我从 GUI 命令行运行 MyOctaveProgram.m(使用 uigetfile 函数选择 MyTextFile.txt)时,这可以正常工作,但是当我通过上面的批处理脚本运行 Octave 时尝试创建 Excel 文件时,我收到以下消息:

(保留文件指针。稍后再尝试保存...)

这似乎不会产生错误,并且会话保持打开状态(与 GUI 不同,如果出现错误,批处理启动的 Octave 会话将终止),但不会创建 Excel 文件。没有其他 Excel 窗口或任务打开,我也不想覆盖现有文件。任何意见,将不胜感激!

标签: batch-fileoctaveexport-to-excel

解决方案


推荐阅读