2010-08-01 44 views
0

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 

Dim p As New ProcessStartInfo 
p.FileName = "D:\c\File_copy_program.exe" 
p.Arguments = "D:\c\File_copy_program.exe" & "D:\PE.nrg" & "D:\c\1.nrg" 
p.WindowStyle = ProcessWindowStyle.Hidden 
Process.Start(p) 

End Sub 

正如你可以在上面的代碼中看到我試圖運行一個名爲File_copy_program.exe程序,我創建使用C++。現在這個程序在Main中有3個參數(即程序名稱,源文件,目標文件)。如何通過多個命令行參數在一個叫做在VB.net計劃

現在行: p.Arguments = 「d:\ C \ File_copy_program.exe」 & 「d:\ PE.nrg」 & 「d:\ C \ 1.nrg」

不工作。我的程序說無效的參數數量通過(因爲我有一個條件,以確保程序中止如果參數數量不等於3)。

+0

您可能會在參數之間缺少字符串內的空格。你可以通過放置一個斷點並檢查拋出的異常來檢查它看起來有多少個參數。 – GenEric35 2010-08-01 17:46:54

+1

'Arguements'不應該有它的程序。 – 2010-08-01 18:13:54

回答

2

您需要在參數傳遞,你會他們傳遞給程序的命令行:

p.Arguments = "D:\PE.nrg D:\c\1.nrg" 

或者,如果使用變量:

p.Arguments = arg1string & " " & arg2string 

你可以從看第一個例子,你不會將程序名稱作爲參數傳遞,就像你不會在命令行上再次使用程序名稱一樣。

+0

而沒有program.exe – 2010-08-01 19:16:34

+0

@亨克霍爾特曼 - 夠公平的。我認爲,第一個例子很清楚,但可能不適合所有人。添加了更多信息來回答。 – Oded 2010-08-01 19:20:22

1

嘗試p.Arguments = "D:\PE.nrg" & " " & "D:\c\1.nrg" - 您懷疑是否需要指定應用程序名稱,因爲它將通過DOS自動傳遞,並且您需要在參數之間留出空間。

相關問題