将多个参数作为命令行参数传递
Passing multiple arguments as command line args
我正在使用 Process.Start 从另一个 .NET 应用程序调用一个 .NET 应用程序并传入一堆字符串作为命令行参数:
startInfo.Arguments = String.Join(""" """, MyArray)
Dim p As Process = Process.Start(startInfo)
我的意图是传递如下内容:
"first value" "second value" "third value"
并从第二个应用程序中检索:
Sub Main(ByVal args() as String)
If args.Length > 0 Then
End If
...
End Sub
不幸的是 args.Length 只有 returns 1 - 我传递的所有值都作为单个值传递:"first value second value third value"
我尝试在第一个应用程序中用双引号将每个包起来,但似乎没有帮助。我知道我可以只检索 args(0) 然后将其拆分为一个值数组,但我不想这样做。即使没有双引号,它以前也以某种方式对我有用。所以我想弄清楚发生了什么,以及如何让它将我的字符串作为多个值而不是 1 传递。
你的String.Join不会给你你想要的。它不会将双引号放在字符串的开头和结尾。
startInfo.Arguments = """" + String.Join(""" """, MyArray) + """"
我正在使用 Process.Start 从另一个 .NET 应用程序调用一个 .NET 应用程序并传入一堆字符串作为命令行参数:
startInfo.Arguments = String.Join(""" """, MyArray)
Dim p As Process = Process.Start(startInfo)
我的意图是传递如下内容:
"first value" "second value" "third value"
并从第二个应用程序中检索:
Sub Main(ByVal args() as String)
If args.Length > 0 Then
End If
...
End Sub
不幸的是 args.Length 只有 returns 1 - 我传递的所有值都作为单个值传递:"first value second value third value"
我尝试在第一个应用程序中用双引号将每个包起来,但似乎没有帮助。我知道我可以只检索 args(0) 然后将其拆分为一个值数组,但我不想这样做。即使没有双引号,它以前也以某种方式对我有用。所以我想弄清楚发生了什么,以及如何让它将我的字符串作为多个值而不是 1 传递。
你的String.Join不会给你你想要的。它不会将双引号放在字符串的开头和结尾。
startInfo.Arguments = """" + String.Join(""" """, MyArray) + """"