2011-09-16 117 views
2

我對IDL非常陌生(試圖爲使用它的人做一個POC),我試圖運行一個外部命令。我所添加的代碼行是這樣的:在IDL中使用spawn命令

spawn, 'C:\Program Files\ITT\IDL\IDL80\products\envi48\save_add\visual.exe'

我認爲這是需要啓動外部命令所有。當我運行應用程序時,我可以使用調試器來逐步執行代碼,並且當我到達此行並跳過時,我的可執行文件不會運行。我在調試器中看不到任何指示任何類型錯誤的消息。

我把文件visual.exe放在目錄下,可以手動運行,沒有問題。它似乎在不執行代碼或報告任何錯誤的情況下正確執行代碼。

回答

2

您對spawn命令的使用是正確的。也許visual.exe過早退出 出於某種原因(例如,說不定什麼時候通過spawn運行的工作目錄是不是有什麼 你的外部程序期待。)

您可以嘗試編寫啓動visual.exe一個小腳本,然後做一個pause, 然後spawn包裝腳本而不是visual.exe直接。那麼 可以讓你有機會在DOS窗口消失之前看到任何錯誤消息。

3

您可以使用以下形式:

spawn, cmd, result, errResult 

獲得可能從CMD中產生的任何錯誤消息。在您的具體情況下,我認爲您需要引用可執行文件的路徑,因爲路徑中有空間。

+0

我確實有單蜱。這不夠嗎? –

+1

單引號用於IDL。 IDL會將該字符串直接傳遞給操作系統,由於路徑中的空間,這會讓人感到困惑。我認爲你需要這樣的東西: spawn,'「C:\ Program Files \ ITT \ IDL \ IDL80 \ products \ envi48 \ save_add \ visual.exe」' – mgalloy