2014-09-01 42 views
0

我想從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文件。

+0

對於一個Out必須是一個字符串。爲獲得進一步的幫助,最好報告實際的錯誤。 – bdecaf 2014-09-01 12:02:03

+0

嗨,沒有錯誤。它只是執行該行,但我沒有看到輸出。 makeit.cmd應該將我的C項目轉換爲十六進制,如果我手動運行它工作正常。 – 2014-09-01 12:07:23

+0

以及';'你壓制輸出。試試這個語法:'[status,cmdout] = system(command)'並告訴它說什麼。 – bdecaf 2014-09-01 12:17:34

回答

1

那麼對於somereason它不會運行,如果我會在bat文件中給出cmd的完整路徑。所以我有一個cd命令來改變目錄然後運行。現在它運行良好,謝謝大家感謝您的幫助!

+0

好你想出來了,你可以把這個帖子標記爲解決方案,以後有同樣問題的人會找到它。 – bdecaf 2014-09-02 08:15:12

0

怎麼樣使用eval,像這樣:

eval(['!test.cmd']);

我已成功用這個.bat文件運行(與蝙蝠腳本的這個輸出顯示在我的MATLAB命令行)。我也發現了這個dos命令,但我不知道它是否工作還好吧:

+0

這個功能也適用。是否因爲我有一個漫長的路徑,因此這個問題呢?我也試過用雙引號。 – 2014-09-01 12:12:46

0

您只需鍵入以下字符串得到的東西下來:

!(c:/testProj/test.cmd) 

其實,這是沒有從

不同system('c:/testProj/test.cmd')

我想你應該檢查路徑是否有錯。至於你在cmd文件中的代碼,這超出了我的幫助能力。