Я хочу вызвать cmd.exe с помощью C#. И я хочу написать несколько команд cmd в C#.Как взаимодействовать с cmd.exe с помощью C#?
Наиболее важные ключи таковы: Я хочу взаимодействовать с cmd window.the следующая команда вводится в соответствии с последним выходом команды.
Но теперь я попытался, он может вводить несколько команд, но только один выход или один выходErr.
Я хочу, чтобы одна команда имела один выход, а следующая команда также является тем же самым окном cmd, а не новым окном cmd?
Как решить эту проблему. пример кода, как этот
string[] message = new string[2];
ProcessStartInfo info = new ProcessStartInfo();
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.RedirectStandardError = true;
info.UseShellExecute = false;
info.FileName = "cmd.exe";
info.CreateNoWindow = true;
Process proc = new Process();
proc.StartInfo = info;
proc.Start();
using (StreamWriter writer = proc.StandardInput)
{
if (writer.BaseStream.CanWrite)
{
foreach (string q in command)
{
writer.WriteLine(q);
}
writer.WriteLine("exit");
}
}
message[0] = proc.StandardError.ReadToEnd();
if (output)
{
message[1] = proc.StandardOutput.ReadToEnd();
}
return message;
ли вызов 'proc.StandardOutput.ReadToEnd();' не даст вам все выходные? Ваша проблема в том, что вы не знаете, как разделить ее? –
'proc.StandardOutput.ReadToEnd()' может выводить весь вывод команды, но проблема может быть в том, что следующая команда будет набираться в соответствии с предыдущим выходом команды. Например, если предыдущий вывод команды «Сколько лет вы «Я буду вводить число, если вывод команды pre« What's s your name », я буду вводить мое имя ... – user5720776
Должен признаться, этот вопрос меня смущает. Я не понимаю, что _Я хочу взаимодействовать с cmd window.the следующая команда набирается в соответствии с последней командой output._ действительно означает. Кроме того, это приложение Windows, и вы также хотите окно консоли? Почему бы не использовать 'AllocConsole'. См. Это [ответ] (например, http://stackoverflow.com/questions/9943040/how-to-write-to-a-console-window-from-a-windows-application). –