将多个参数作为命令行参数传递

时间:2015-02-11 14:00:31

标签: arrays vb.net command-line-arguments

我使用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 - 我传递的所有值都作为单个值传递:“first value second value third value”

我尝试在第一个应用程序中用双引号括起来但似乎没有帮助。我知道我可以只检索args(0)然后将其拆分为值数组但我不想这样做。不知何故,它之前对我有用,即使没有双引号。所以我想弄清楚发生了什么,我怎么能把它作为多个值而不是1来传递我的字符串。

1 个答案:

答案 0 :(得分:2)

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

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