Я работаю над программой, которая запускает другое приложение с несколькими (большой текст) аргументами.
Когда я запускаю это внешнее приложение через cmd.exe, все работает нормально (также с несколькими строками в качестве аргумента).
ttv.exe -I <root directory> -v vMale -i "large large text" -o test.pcm
Но когда я попытался вызвать его из моей программы, я обнаружил, что аргумент "large large text" слишком велик для этого вызова, потому что ограничение строки 254 символами?!?
Вот эта часть кода, которая вызывает процесс:
string path = @"<path to exe>";
string arg1= @"-I <root directory>";
string arg2= @"-v vMale";
string arg3= @"-o test.pcm";
string arg4= @"-i """+ text+"";
commandline.StartInfo.UseShellExecute = false;
commandline.StartInfo.RedirectStandardInput = true;
commandline.StartInfo.WorkingDirectory = path;
commandline.StartInfo.FileName = Path.Combine(path, "ttv.exe");
commandline.StartInfo.Arguments = " " + arg1+ " " + arg2+ " " + arg3+ " " + arg4;
commandline.Start();
Я пробовал несколько решений с commandline.StandardInput.Write()
, .WriteLine()
, специальными кавычками, такими как \"
, но ничего не работает. Я думаю, что консоль автоматически обрезает мою строку, когда она слишком длинная. Есть ли другие решения для этой проблемы? Было бы здорово, когда кто-то может помочь.
Спасибо