Process.Start参数不起作用

时间:2017-09-19 14:07:39

标签: vb.net parameters process.start

我正在尝试使用两个参数启动一个进程,该参数将从cmd提示窗口运行得很好。当我尝试通过process.start启动它时会出现问题。

在cmd窗口中,它看起来像这样。

D:\Projects\MyProg.exe "D:\Projects\MyScript.txt" "D:\Projects\MyInputData.txt"

当我尝试在.NET中构建参数时,它会在整个字符串周围加上双引号,它看起来像这样。该程序不会将其解释为两个参数而只是停止。如果我在每个参数周围添加双引号,它仍然会误解它。

我知道这是MyProg.exe问题(我无法更改供应商程序)但是有没有办法发送此命令以便它可以工作?

myProcess.StartInfo.Arguments = "D:\Projects\MyScript.txt D:\Projects\MyInputData.txt"

当我添加双引号时它会起作用,程序启动但后来出现问题并停止。

myProcess.StartInfo.Arguments = """D:\Projects\MyScript.txt"" ""D:\Projects\MyInputData.txt"""

1 个答案:

答案 0 :(得分:0)

我不太确定D:\Projects\MyProg.exe正在做什么,但是以下示例正在进行中。声明了两个变量字符串。这两个字符串表示我想要与可执行文件一起使用的两个参数参数。

Public Class Form1
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    '// Set first file parameter to the executable
    Dim sourceFileName As String = "source.txt"
    '// Set second file parameter to the executable
    Dim targetFileName As String = "target.txt"

    '// Create a new ProcessStartInfo
    Dim p As New ProcessStartInfo

    '// Specify the location of the binary
    p.FileName = "D:\_working\ConsoleApplication3.exe"

    '// Use these arguments for the process
    p.Arguments = " """ & sourceFileName & """ """ & targetFileName & """ -optionalPara"

    ' Use a hidden window
    'p.WindowStyle = ProcessWindowStyle.Hidden

    ' Start the process
    Process.Start(p)

  End Sub
End Class

查看结果屏幕截图:

enter image description here