如何在VB.net中调用的程序中传递多个命令行参数

时间:2010-08-01 17:42:58

标签: .net


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个Arguments(即程序名,源文件,目标文件)。

现在行: p.Arguments =“D:\ c \ File_copy_program.exe”& “D:\ PE.nrg”& “d:\ C \ 1.nrg”

无效。并且我的程序表示传递了无效的参数数量(因为我有条件确保程序在参数数量不等于3时中止)。

2 个答案:

答案 0 :(得分:2)

您需要传递参数,就像在命令行上传递给程序一样:

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

或者,如果使用变量:

p.Arguments = arg1string & " " & arg2string

从第一个示例中可以看出,您没有将程序名称作为参数传递,就像在命令行上不再使用程序名称一样。

答案 1 :(得分:1)

尝试p.Arguments = "D:\PE.nrg" & " " & "D:\c\1.nrg" - 您需要指定应用程序名称,因为它将由DOS自动传递,您需要在参数之间留一个空格。