没有经历一个shell运行外部命令?
33视图(30天)
显示旧的评论
Matlab系统()命令允许用户运行外部命令。要做到这一点,它产生一个shell,用它来运行所提供的命令。(参见https://fr.mathworks.com/help/matlab/ref/system.html)
这种行为是伟大的交互使用。然而,对于生产代码,它可能导致问题与特殊字符shell将跟随过分解读给定的命令。因此,例如,一个目录名字中括号可以导致壳错误和防止命令正确执行。
在Python的世界里,子过程模块能够直接运行命令,没有产卵shell(“壳”参数):
Matlab具有相同吗?我知道人们提出了不同的正则表达式来转义字符串,但这只是不够健壮。
0评论
接受的答案
1月
2020年12月16日
你可以尝试一个墨西哥人习惯:
//www.tianjin-qmedu.com/matlabcentral/fileexchange/341-spawn
也许这对你有用:
运行时= java.lang.Runtime.getRuntime ();
过程= runtime.exec (程序__arg1最长的);%阻塞
%继续Matlab处理并行产生过程…
%……或者:
rc = process.waitFor ();%块Matlab直到外部程序结束
rc = process.exitValue ();%获取一个结束了的过程的返回代码
答案(1)
Nitin Kapgate
2020年12月16日
使用
!
打电话给没有戒烟MATLAB工具或其他可执行程序。
例如,下面的代码打开了Microsoft Excel在WINDOWS平台:
excel.exe !
外部程序完成后或者你退出程序时,操作系统将控制返回到MATLAB。
在后台模式下运行应用程序或显示输出在一个独立的窗口,添加&行结束。
例如,以下语句打开Microsoft Excel程序并返回控制命令提示符,这样你可以继续运行MATLAB命令:
excel.exe !&