2016-01-15 1 views
0

Я хочу запустить и .exe файл из m-файла в MATLAB. Ошибка .exe не запускается, когда я пытаюсь. В restPath включен путь .exe. Я кодирую в среде Windows с помощью командной строки. Моя идея состояла в том, чтобы передать команду для запуска .exe в командной строке.Запуск .exe из MATLAB m.file, проблемы с пути

command = restPath; 
[status,cmdout] = system(command,'-echo'); 

Сообщение об ошибке; Файл ошибки .cfg не найден ...

Есть ли у вас какие-либо предложения? С уважением

Редактировать: .exe теперь запущен в 2 итерациях. 1. CD в файл, 2. Запуск

addpath(restPath); 
command = horzcat('cd ',restPath); 
[status,cmdout] = dos(command,'-echo'); 

execute = 'abc.exe'; 
[statusExe,cmdoutExe] = system(execute,'-echo'); 
+0

Что включает в себя restPath? вы используете команду restPath в качестве команды, что она должна делать? Если вы хотите запустить exe, вы должны сделать что-то вроде системы («myexe.exe», someParameter ») – GameOfThrows

+0

restPath структурирован следующим образом: путь/в/файл/myexe.exe. Объявление немного запутанно. Команда, предназначенная для запуска .exe – cag

+0

. Если это формат - это String, тогда мы должны предположить, что ваш вызов для запуска exe-файла верен, вам нужны файлы настроек, которые необходимы для того, чтобы они были на пути. ? – GameOfThrows

ответ

1

Основной вопрос, который я вижу в том, что вы используете две отдельные команды для компакт-диска и выполнения. Когда команда cd выполняется, контекст командной строки отбрасывается, и вы начинаете с нового при выполнении системной команды (поэтому cd не имеет эффекта).

Я хотел бы предложить либо конкатенации две команды в одну с помощью «&» обозначения, как следующее:

[status,cmdout] = dos([command ' & ' execute],'-echo'); 

или вы могли бы изменить Matlab рабочее пространство первого, используя стандартную команду компакт-диск в mscript, а затем выполнить системная команда.

currentPath = pwd; 
cd(restPath); 

execute = 'abc.exe'; 
[statusExe,cmdoutExe] = system(execute,'-echo'); 

cd(currentPath); 

Также возможно, что ех вы вызываете ожидаете дополнительный вход, чтобы указать на файл .cfg (хотя это не может быть проблемой, если у вас есть, что в той же директории, что и ех, и это ожидает, что он будет там).

Смежные вопросы