我試圖執行從MATLAB外部程序才能成功:執行使用時與(號),但當時並沒有等待完成
cmdstr = sprintf('"%s\\myEXECUTABLE" "%s" -options',fullEXEpath, fullInputFilePath);
[status, res] = system(cmdstr);
我收到「狀態= 1「,部分程序在」res「中輸出(雖然沒有錯誤信息)並且沒有輸出文件。
,但執行正好與&(符號)相同的命令:
cmdstr = sprintf('"%s\\myEXECUTABLE" "%s" -options &',fullEXEpath, fullInputFilePath);
[status, res] = system(cmdstr);
在通過DOS命令窗口的背景意義,只是罰款(等於狀態創建0和輸出文件)。
我已經看到某個地方可能是防病毒程序阻止程序通過Matlab執行,但由於我是端點用戶,所以無法禁用它。
使用「&」導致我的GUI打開命令窗口並在後臺運行,同時立即恢復Matlab代碼。
我可以用命令窗口打開,但不能用Matlab立即恢復,因爲我在我的MATLAB代碼中使用了輸出文件,這些文件不一定就緒。
有沒有辦法驗證外部程序已經結束? 我想簡單地說:
while (status) %waiting for system to return status = 0
disp 'waiting...';
end
,但它似乎仍與以前完成「狀態= 0」返回......
或者更確切地說 - 是有辦法避免&?
任何答案將不勝感激。