MatLab的系统函数和PowerShell调用运算符(&)

eqzww0vc  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(240)

当我尝试在matlab的system函数中使用调用操作符时,我得到一个错误。例如,此命令在PowerShell中运行良好:

& "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv"

但在MatLab中这是行不通的:

system('& "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv"')

我得到了错误& was unexpected at this time.,它看起来像是PowerShell错误,因为MatLab实际上并没有返回错误。但很明显,该命令没有正确运行,就像我在PowerShell中正确运行它时一样。

oo7oh9g9

oo7oh9g91#

正如Cris Luengo指出的那样,matlab的system使用的是cmd.exe,而不是PowerShell。因此,这是可行的:

system('"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv" myProject.sln /Build')

事实上,它正在构建解决方案,但不显示构建的任何输出,也不给出构建失败或成功的正确返回值。Aero Engy建议在调用开始时使用powershell -command也是有效的,更好的是,它返回正确的值,构建的输出显示在控制台中。我不得不用反号转义一些空格(否则无法识别嵌套的引号),但现在这是我首选的解决方案:

system('powershell -Command "& C:\Program` Files\Microsoft` Visual` Studio\2022\Community\Common7\IDE\devenv myProject.sln /Build"')

相关问题