2

我有一个可执行文件,它在运行时询问参数文件的名称。我尝试了所有输入参数文件名称的方式,但我得到了同样的错误:

GAM Version: 2.905 

ERROR - the parameter file does not exist, 
        check for the file and try again   

Stop - Program terminated. 


ans =

     0

参数文件的名称是gam.par. 我为自动读取参数文件名称的函数尝试的各种样式是:

system('"gam.exe" -f "gam.par"')

system('"gam.exe" -f "gam.par"')

system('"gam.exe" -f gam.par')

system('gam.exe -f gam.par')

system('"gam.exe" /f gam.par')

system('"gam.exe" /f gam.par /o gam.out')

system('"C:\Users\...\gam.exe" /f gam.par /o gam.out')

system(['"C:\Users\...\gam.exe" /f gam.par /o gam.out'])

其中gam.pargam.par分别是参数(输入)文件和输出文件。但是,在上述每种情况下,我都会收到与开头所示相同的错误消息。

我所有的文件(输入、输出、可执行文件等)都在同一个文件夹中。如果我使用 system() 函数而不使用参数文件的名称,那么它会正常运行并提示我输入参数文件名,当我gam.par在提示符下输入相同的文件名(即)时,一切正常。我希望能够通过在 system() 参数中输入参数文件名来自动执行此操作,而不是在提示时手动输入。如果有人能确定我为什么无法得到我想要做的事情,那将会很有帮助。谢谢!

4

3 回答 3

2

这是一个例子。想象一下,您在以下位置有一个文本文件C:\filename.txt

system('type c:\filename.txt')

现在,如果文件的名称(或路径)中有空格,则需要使用双引号:

system('type "c:\my filename.txt"')
于 2012-07-11T13:09:32.203 回答
2

根据Mathworks 的这个页面,语法是:

system('filename parameter1 parameter2...parameterN')

或者在你的情况下:

system('gam.exe gam.par') 

注意整个参数周围的单引号以及传递给可执行应用程序的每个参数之间的空格。还有完整的产品文档,但我发现它没有我之前的链接那么清楚。

于 2012-07-11T00:49:27.217 回答
0

在控制台运行程序:\\location\My programm.exe 'param 1' 'param 2'

在 Matlab 中运行程序:system(['location\my proramm.exe' '"param 1"' '"param 2')

pathApplicationForm = strcat('"C:\Users\Master\Google Drive\Bakalaura Darbs\Application Development for the Microscopic Models Calibration\Application Form\bin\Debug\Application Form.exe"');
runParam = strcat(get(vEdit2,'String'), '\', get(vEdit3,'String'));
VISSIM = strcat(get(vEdit1,'String'));
system([pathApplicationForm ' "' VISSIM '" "' runParam '']);

它正在工作^^

于 2013-11-09T09:22:52.597 回答