八度音量'输入'函数,贯穿批处理文件 [英] Octave 'input' function, run through batch file

查看:17
本文介绍了八度音量'输入'函数,贯穿批处理文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用批处理文件:

@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对字符串输入进行预处理以删除任何不需要的空格来确保删除回车。

这篇关于八度音量&amp;#39;输入&amp;#39;函数,贯穿批处理文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆