Вызов Powershell из MATLAB не переходит на следующую строку в MATLAB - PullRequest
2 голосов
/ 17 февраля 2020

У меня есть команда, которая вызывает powershell с помощью! Powershell. она работает нормально, но первая команда выполнит публикацию действия с данными из внешней программы и не перейдет к следующей строке кода в MATLAB, пока не будет подписчик на опубликованные данные. проблема в том, что следующая строка кода - это та, которая подписывается на опубликованные данные, поэтому она просто работает, ожидая данных. какие-нибудь идеи, как заставить код продолжаться? Я пробовал оператор continue, но так как я вызвал powershell, он остается там, и команды MATLAB не выполняются. Кроме того, я попытался выполнить команды в обратном направлении, поэтому сначала подписчик и издатель, но получили ту же проблему. Любые идеи?

pubPath = 'powershell -inputformat none cd path' ;
subPath = 'powershell -inputformat none cd path2';

[status_one,publish] = system(pubPath);
[status_two,subscribe] = system(subPath);

1 Ответ

4 голосов
/ 17 февраля 2020

Вам нужно запустить задание в фоновом режиме, чтобы PowerShell возвращался непосредственно перед завершением задания. Обратите внимание, что PowerShell ожидает завершения задания до sh, а не MATLAB.

Завершите команду PowerShell амперсандом (&), чтобы запустить ее в фоновом режиме:

[status_one,publish] = system('powershell -inputformat none cd path &');
...