我正在尝试使用两个参数启动一个进程,该参数将从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"""
答案 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
查看结果屏幕截图: