如何在VB.net中调用的程序中传递多个命令行参数 正如上面所说的,我正在尝试运行一个名为Fiel*CopyPosial.EXE的程序,我用C++创建了它。现在这个程序在Main中有3个参数(即程序名、源文件、目标文件)
现在请注意: p、 Arguments=“D:\c\File\u copy\u program.exe”和“D:\PE.nrg”和“D:\c\1.nrg”如何在VB.net中调用的程序中传递多个命令行参数 正如上面所说的,我正在尝试运行一个名为Fiel*CopyPosial.EXE的程序,我用C++创建了它。现在这个程序在Main中有3个参数(即程序名、源文件、目标文件),.net,.net,现在请注意: p、 Arguments=“D:\c\File\u copy\u program.exe”和“D:\PE.nrg”和“D:\c\1.nrg” 它不起作用。并且我的程序说传递的参数数无效(因为我有一个条件,可以确保程序在参数数不等于3时中止)。尝试p.arguments=“D:\PE.nrg”&“&”和“D:\c\1.nrg”-您可能需要指定应用程序名,因为它将由DOS自动传递,您的参数之间需要一个空格。请尝试p.Arguments=“D:\PE.nrg”&“&”和“D:\c\1.n
它不起作用。并且我的程序说传递的参数数无效(因为我有一个条件,可以确保程序在参数数不等于3时中止)。尝试
p.arguments=“D:\PE.nrg”&“&”和“D:\c\1.nrg”
-您可能需要指定应用程序名,因为它将由DOS自动传递,您的参数之间需要一个空格。请尝试p.Arguments=“D:\PE.nrg”&“&”和“D:\c\1.nrg”
-您可能需要指定应用程序名称,因为它将由DOS自动传递,您需要在参数之间留一个空格。您需要在命令行上将参数传递给程序时传入参数:
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
或者,如果使用变量:
p.Arguments = "D:\PE.nrg D:\c\1.nrg"
正如您从第一个示例中看到的,您不会将程序名作为参数传入,这与您不会在命令行上再次跟随程序名一样。您需要传入参数,就像您在命令行上将它们传递给程序一样:
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
或者,如果使用变量:
p.Arguments = "D:\PE.nrg D:\c\1.nrg"
从第一个示例中可以看出,您不会将程序名作为参数传入,这与您不会在命令行中再次跟随程序名一样。字符串中的参数之间可能缺少空格。您可以通过设置断点并检查它引发的异常来检查它实际看到了多少个参数。
Arguements
中不应包含该程序。您可能在字符串中的参数之间缺少空格。你能通过设置断点并检查它抛出的异常来检查它实际看到了多少个参数吗。Arguements
不应该包含程序中的参数。@Henk Holterman-很公平。我认为第一个例子很清楚,但可能不是每个人都清楚。添加了更多信息以回答。@Henk Holterman-很公平。我认为第一个例子很清楚,但可能不是每个人都清楚。添加了更多信息来回答。