我想從MATLAB運行一個cmd文件,但無法執行它。下面的代碼可以讓任何人看到問題嗎?如何從matlab運行一個cmd文件
這是我有我的CMD文件中:
echo on
>test.log 2>&1 (
C:/testProj/Make/makeit.cmd param1
)
這是MATLAB代碼:
Out = 'C:/testProj/test.cmd';
system(Out);
但這其實並不運行CMD文件。
我想從MATLAB運行一個cmd文件,但無法執行它。下面的代碼可以讓任何人看到問題嗎?如何從matlab運行一個cmd文件
這是我有我的CMD文件中:
echo on
>test.log 2>&1 (
C:/testProj/Make/makeit.cmd param1
)
這是MATLAB代碼:
Out = 'C:/testProj/test.cmd';
system(Out);
但這其實並不運行CMD文件。
那麼對於somereason它不會運行,如果我會在bat文件中給出cmd的完整路徑。所以我有一個cd命令來改變目錄然後運行。現在它運行良好,謝謝大家感謝您的幫助!
好你想出來了,你可以把這個帖子標記爲解決方案,以後有同樣問題的人會找到它。 – bdecaf 2014-09-02 08:15:12
怎麼樣使用eval,像這樣:
eval(['!test.cmd']);
我已成功用這個.bat文件運行(與蝙蝠腳本的這個輸出顯示在我的MATLAB命令行)。我也發現了這個dos命令,但我不知道它是否工作還好吧:
這個功能也適用。是否因爲我有一個漫長的路徑,因此這個問題呢?我也試過用雙引號。 – 2014-09-01 12:12:46
您只需鍵入以下字符串得到的東西下來:
!(c:/testProj/test.cmd)
其實,這是沒有從
不同system('c:/testProj/test.cmd')
我想你應該檢查路徑是否有錯。至於你在cmd文件中的代碼,這超出了我的幫助能力。
對於一個Out必須是一個字符串。爲獲得進一步的幫助,最好報告實際的錯誤。 – bdecaf 2014-09-01 12:02:03
嗨,沒有錯誤。它只是執行該行,但我沒有看到輸出。 makeit.cmd應該將我的C項目轉換爲十六進制,如果我手動運行它工作正常。 – 2014-09-01 12:07:23
以及';'你壓制輸出。試試這個語法:'[status,cmdout] = system(command)'並告訴它說什麼。 – bdecaf 2014-09-01 12:17:34