2015-02-11 90 views
0

我打电话从其他使用的Process.Start一个.NET应用程序,并通过在一堆字符串作为命令行参数:传递多个参数作为命令行参数

startInfo.Arguments = String.Join(""" """, MyArray) 
Dim p As Process = Process.Start(startInfo) 

我的意图是在像传递:

“第一值”, “第二值”, “第三值”

并从第二应用中检索:

Sub Main(ByVal args() as String) 
    If args.Length > 0 Then 

    End If 
    ... 
End Sub 

不幸的是args.Length只返回1 - 我通过获取传递上为单一值的所有值:“第一个值第二个值第三值”

我试着每个包裹在双引号中的第一个应用程序,但似乎并不帮助。我知道我可以检索参数(0),然后将其分割成一组值,但我不想这样做。也不知何故,它之前,我的工作,即使没有双引号。所以我想弄清楚发生了什么事情,我怎样才能让它通过我的字符串作为多个值而不是1.

回答

2

你的String.Join不会给你你想要的。它不会在字符串的开始和结尾放置双引号。

startInfo.Arguments = """" + String.Join(""" """, MyArray) + """" 
+0

谢谢!就是这样! – ElenaDBA 2015-02-11 14:17:14