2013-07-30 52 views
0

我VB.NET程序,調用批處理文件調用批處理文件故障。在批處理文件中有一行調用快捷方式。當我直接運行批處理文件時,它的工作原理應該如何。然而,當它是由程序調用的存在,看起來像這樣的錯誤:我已經籤多時間,肯定是在路徑文件只有當VB.NET應用

error message

在批處理文件我這樣調用快捷:"C:\Apps\Ubuntu.lnk"

在VB.NET程序我已經打過電話了一批具有:

shell("C:\Apps\batchfile.bat")

shell("cmd /c C:\Apps\batchfile.bat")

如何開始從VB.N一個批處理文件ET程序不同於從資源管理器或cmd啓動它?沒有人知道爲什麼這種情況正在發生或如何我也許能解決這個問題?

在此先感謝。

回答

0

一些嘗試錯誤後,我找到了解決辦法:

Shell("cmd /c start ""Ubuntu"" ""explorer.exe"" ""C:\Apps\Ubuntu.bat""") 

這就要求的explorer.exe它調用批處理文件。

+0

要調用'cmd'調用'start'叫'explorer'調用批處理...是最好的解決方案,您找到???你爲什麼不在VB中保留'Shell(「C:\ Apps \ batchfile.bat」)'並批量替換'START「Ubuntu」「C:\ Apps \ Ubuntu.lnk」''順便說一句,我也無法理解什麼是你最初的代碼中的問題。發佈你的蝙蝠碼。 –

+0

我不想更改批處理文件代碼,因爲直接啓動它時它工作正常。我不打算分發這個,所以解決方案有多好並不重要,但我仍然想知道如何從vb程序調用批處理文件與通過explorer.exe –

+0

啓動它的唯一區別我能想到的是從VB調用時的工作目錄可能會有所不同。雖然,不知道這將如何影響批處理文件調用具有完整路徑的文件。 – SmithMart

0

好吧,我不知道究竟是什麼不對,但嘗試使用start命令像這樣:

start C:\Apps\Ubuntu.lnk 

這應該做工精細

此致,蒙娜麗莎