代码之家  ›  专栏  ›  技术社区  ›  Sadique

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

  •  0
  • Sadique  · 技术社区  · 15 年前

    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
    

    正如你在上面的代码中看到的,我试图运行一个名为Fiel*CopyPosial.EXE的程序,它是我用C++创建的。现在这个程序主要接受3个参数(即程序名、源文件、目标文件)。

    现在这条线: p.arguments=“d:\c\file_copy_program.exe”&“d:\pe.nrg”&“d:\c\1.nrg”

    不工作。我的程序说传递的参数个数无效(因为我有一个条件来确保如果参数个数不等于3,程序就会中止)。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Oded    15 年前

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

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

    或者,如果使用变量:

    p.Arguments = arg1string & " " & arg2string
    

    正如您从第一个示例中看到的,您不会将程序名作为参数传递,就像您不会在命令行上再次使用程序名本身一样。

        2
  •  1
  •   Will A    15 年前

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

    推荐文章