2015-02-11 3 views
0

Я зову одно .NET приложение из другого с помощью Process.Start и переходя в кучу строк в качестве аргументов командной строки:Передача нескольких аргументов в командной строке арг

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 - все передаваемые мной значения передаются как одно значение: «первое значение второго значения третьего значения»

Я попытался обернуть каждый в двойные кавычки в первом приложении, но не кажется помогать. Я знаю, что могу просто восстановить args (0), а затем разбить его на массив значений, но я не хочу этого делать. Также как-то это сработало для меня раньше, даже без двойных кавычек. Поэтому я пытаюсь выяснить, что произошло, и как я могу заставить его передать мои строки как несколько значений вместо 1.

ответ

2

Ваш String.Join не даст вам то, что вы хотите. Он не ставит двойную кавычку в начале и в конце строки.

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

Спасибо! Вот и все! – ElenaDBA

Смежные вопросы