八度音量&;#39;输入&;#39;函数,贯穿批处理文件 [英] Octave 'input' function, run through batch file
本文介绍了八度音量&;#39;输入&;#39;函数,贯穿批处理文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用批处理文件:
@echo off
C:OctaveOctave-4.4.1octave.vbs --force-gui --eval batchTest("'%~dp0'")
cmd /c
运行倍频程脚本
function [] = batchTest(fPath)
disp(fPath);
cd(fPath);
optionNumber = input('Choose option 1 or 2: ');
if optionNumber == 1
fName = input('Input file description: ',"s");
filename = [fName ".xlsx"];
xls = xlsopen(filename,1); % <-- THIS DOES NOT WORK, PRODUCES "FILE POINTER PRESERVED MESSAGE"
xls = oct2xls({"OutputData"},xls,1,"A1");
xlsclose(xls);
end
if optionNumber == 2
filename = "TestFile.xlsx";
xls = xlsopen(filename,1); % <-- THIS WORKS AS EXPECTED
xls = oct2xls({"OutputData"},xls,1,"A1");
xlsclose(xls);
end
若要在批处理文件的目录中创建Excel文件,请执行以下操作。
第1号选项会产生一条";文件指针保留";警告,并且不会创建Excel文件。似乎我不能使用任何由Octave的"输入"函数创建的字符串,无论是全部还是部分。使用";.xlsx";输入完整的文件名并将该变量传递给‘xlsopen’函数无济于事。选项2运行得很好,但我需要生成多个文件,因此&fName";描述符很重要。我已尝试将SETLOCAL ENABLEDELAYEDEXPANSION添加到批处理文件中。我还尝试了一种解决方法,其中我使用了选项2,然后添加了rename("TestFile.xlsx",[fName ".xlsx"])
到Octave脚本,但这会在‘rename’函数中产生无效输入";错误,因此它也不喜欢由‘input’创建的字符串。问题只出在‘xlsopen’和‘rename’函数上;‘input’函数在选择选项编号时工作得很好。
直接从Octave命令行执行‘BatchTest(Pwd)’时,这两个选项都有效。只有在从批处理文件执行时才会出现该问题。如有建议,我们将不胜感激。推荐答案
问题听起来像是在创建字符串时,包含了扰乱文件名的转义字符。
从注释中的讨论可以看出,您的字符串中似乎包含了回车字符,从而导致文件名错误。
尚不清楚为什么只有在从批处理文件运行时才会出现这种情况,但作为一种解决办法,您可以通过使用strtrim
对字符串输入进行预处理以删除任何不需要的空格来确保删除回车。
这篇关于八度音量&;#39;输入&;#39;函数,贯穿批处理文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文