呼叫執行檔問題

各位前輩好

今天做專題的時候又碰到一個問題

專題中需要exe檔或是bat檔的呼叫,我爬文過後用的是System Exec.vi

但是很奇怪的是,我執行程式之後可以呼叫執行檔

但是執行檔並不會執行,他只是開啟以後就自動關掉了

不知道出了什麼問題,也沒有System Exec的範例

希望各位前輩幫我看看是否有寫錯的程序

![](upload://fOkmIay40NvTrlrgwu40HTguzSB.jpeg)

用法是那樣沒有錯!

你可以試著去執行別的檔案試試看,別的若可以用可能就是你原本那執行檔有點問題吧!

奇怪的地方就是這裡

我不管在dos下面執行exe檔

或是在windows上雙擊執行都沒有問題

但是使用System Exec執行它就不會跑完整個程式

而是出現執行exe檔的視窗閃一下自動關閉

我想是不是LabVIEW的設定上有什麼問題

你可以附上你的執行檔來試一下嗎?

我測試的執行檔是最簡單的在網路上廣為流傳的"清除系統垃圾.bat"批次檔

之前測試過一次,也是用同樣的同樣的寫法沒有問題

但是今天跟廠商約見面要test他們的執行檔時就出現問題

然後我回來測試清垃圾bat也沒有用了 真的是非常見鬼 非常糗

狀況我再描述的更詳細一點,平常點執行檔例如bat批次檔會出現dos視窗,我之前正常執行的時候也是這樣。

不過今天出狀況的時候是exe檔,bat檔用滑鼠點都沒有問題

但是用LabVIEW呼叫的時候就只閃過執行檔的dos視窗,然後視窗瞬間消失沒有執行檔案。

我想會不會是LabVIEW設定的問題,因為學校的電腦好像有被Reset過,或許是設定值被動到了?

會不會有哪裡的設定是會擋住LabVIEW呼叫執行檔的嗎?

P.S.我用的測試bat是這個 : http://tw.knowledge.yahoo.com/question/question?qid=1206100802489 

可以用ActiveX載入Windows Script Host Objet  Model這個Class,使用WshShell物件的Run方法。

附上檔案,可直接呼叫使用。Run.vi

![](upload://xk51bPWuFn8SxfxUEsMioFXU8Kg.jpeg)

![](upload://v1RLWaYYhn0xcU8HTn5MwgcdPec.jpeg)

 

真見鬼

我剛剛打電話給NI的工程師,他請我用其他執行檔測試

我try了YAHOO迷你筆(翻譯軟體),小算盤都OK

但是這種會出現命令提示字元視窗的執行檔或批次檔都見鬼的不能用

但是在其他介面呼叫就沒問題 像是windows下按左鍵,在開始執行的地方輸入路徑,在dos下輸入路徑也可以執行

NI工程師說他也沒輒了。

到底是出了什麼問題

p.s.感謝roy大,不過還是希望找出問題來解決

只要把wait until completion?設成False,指令前加上cmd /K or /C就可以了。

/C      執行字串中所描述的命令然後結束命令視窗
/K      執行 字串中所描述的命令然後保留命令視窗

![](upload://6DnlDFPSqhgp9JpXTbnDZUVYYbf.jpeg)

感謝Roy大,bat檔可以吃了,但是專題需要的exe執行檔還是不吃,

按照Roy大的寫法,他會顯示出系統找不到指定的檔案,

然後我把副檔名改為bat試試看,發現在XP底下點他還是可以運作,

但是用LV呼叫卻顯示出" 'MZ$'不是內部或外部命令可執行的程式或批次檔 "

我想是不是System Exec這個vi有限制其呼叫的程式類型?

有點想投降了,但是Roy大您給的那個Run.vi版本不合,可以請您將版本降為8.0嗎?

如果可以的話,小弟還想請問System Exec.vi有什麼限制,附上需要用的exe檔ANSYSLV.rar(這是ANSYS的外掛檔,因為小弟的專題是要做LV跟ANSYS同步控制與分析的程式)

感激。

我試過System Exec.vi呼叫CMD模式的執行檔是可以執行的啊!

cmd /K or cmd /C 後面接執行檔路徑完整名稱(含副檔名)

請注意若是檔名路徑中有類似My Documents這樣帶空格名稱者,必須在前後加上雙引號"My Documents"。

我試過你提供的執行檔,我覺得這個檔案應該有問題,因為執行都不會顯示任何訊息。

雙引號也可加在執行檔路徑名稱的前後,例如cmd /K "G:\All users\My documents\test.exe"

這樣也是可以找到對應路徑下的檔案。

附上8.0版本Run.vi,command的路徑名稱用法也跟System Exec.vi相同。

Roy大您測試我提供的執行檔沒反應我想應該是因為您電腦沒有ANSYS吧

這個執行檔是ANSYS的分析程序,之前我一直沒提供執行檔測試就是因為想板上亦有使用ANSYS的前輩應該不多。

我明天會測試看看寫個批次檔去呼叫這個執行檔試試看(這樣會不會太費工啊)。

而且我的路徑中並沒有包含空格的資料夾,所以我想我的問題應該不是出現在這邊。

不過依照Roy大您的方法批次檔可以呼叫了,或許可以解決這個問題。

另外也非常感謝您提供的轉檔VI,如果還是不行的話可能就使用這條路試試看了,感激。

YA 問題解決了 Roy前輩附上的Run.vi可以直接呼叫(到底是差在哪裡)

或者使用System Exec的話就是另外撰寫簡單的批次檔去執行

如果以後版友碰上此類問題可以參考看看  感謝Roy大