从 MATLAB 调用 Powershell 不会移动到 MATLAB 中的下一行

Posted

技术标签:

【中文标题】从 MATLAB 调用 Powershell 不会移动到 MATLAB 中的下一行【英文标题】:Calling Powershell from MATLAB does not move to next line in MATLAB 【发布时间】:2020-06-01 12:14:44 【问题描述】:

我有一个使用 !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】:

您需要在后台启动作业,以便 PowerShell 在作业完成之前立即返回。请注意,等待作业完成的是 PowerShell,而不是 MATLAB。

以 & 符号 (&) 结束 PowerShell 命令以在后台运行它:

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

【讨论】:

以上是关于从 MATLAB 调用 Powershell 不会移动到 MATLAB 中的下一行的主要内容,如果未能解决你的问题,请参考以下文章

如何从其他powershell脚本调用powershell脚本并且脚本是在powershell对象而不是文件中分配的

无法从 C# 调用 Powershell 函数

从 Java 调用 Powershell 脚本

从 C# 调用 Powershell 函数

如何从 PowerShell 调用复杂的 COM 方法?

从 Powershell 调用带有数组参数的构造函数