Я пытаюсь запустить приложение cmd из С# с помощью Process.Start(ProcessStartInfo);
Проблема заключается в том, что приложение cmd-линии является автономным .exe для Matlab и имеет необязательные аргументы, означающие, что вы передаете их в строке cmd как таковой:
app.exe "optional1" optional1value "optional2" optional2value
Где optional1value - целое число или строка и т.д.
Проблема заключается в том, что двойные кавычки не передаются как часть аргумента "optional1" , поэтому я считаю, что cmd.exe получает что-то вроде:
app.exe optional1 optional1value optional2 optional2value
или что-то в этом роде, который, по-видимому, интерпретирует матлаб-анализатор.
Я пробовал:
@"""optional1"" optional1value ""optional2" optional2value"""
как это было предложено некоторыми другими вопросами SO, касающимися двойных кавычек в аргументах строки cmd, но, похоже, это не работает для меня, и не делает:
"\"optional1\" optional1value \"optional2\" optional2value\""
Я написал небольшую командную строку С#.exe для распечатки аргументов, которые она получает. Если я поместил аргументы командной строки в область VS Project- > Debug и запустил ее, тогда она печатает их с помощью двойных кавычек, но из-за всех экранов и т.д., Когда я делаю это в коде,.exe печатает аргументы без каких-либо двойных кавычек.
Я нашел эту статью об этом, возможно, являясь ошибкой в синтаксическом анализаторе .NET 3.5 cmd, но не может найти жизнеспособного решения.
Есть ли у кого-нибудь идеи?
Спасибо за ваше время,
пончо
P.S. Есть ли способ увидеть, что получает cmd.exe при отправке аргументов с помощью Process.Start()? У меня есть процесс открытия cmd-окна, но было бы неплохо увидеть, что строка cmd.exe получает такие, как: "app.exe optional1 optional1value" и т.д.
Еще раз спасибо.