process.StandardInput.WriteLine(コマンド)を使用している問題があります。 私はC#でCMDをシミュレートするプログラムを作成しようとしているので、いくつかのコマンドを入力してプロセスを閉じることなく "cd"を使ってフォルダをナビゲートすることができます(別のプロセスデフォルトの場所から開始されたためです)。最初のコマンドはうまくいきますが、もう1つコマンドを入力したい場合は、コマンドがハングします。 StandardInput()を閉じているからだと思います。私が間違っていることに関する提案はありますか?C#プロセスの問題は、readlineを使用してcmdでナビゲートする
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
while (true)
{
string command = Console.ReadLine();
cmd.StandardInput.WriteLine(command);
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());
}
どのようにコマンドを入力していますか? Console.ReadLine()による –
; C#のコンソール – suffuko
あなたは正しいです。 CloseとExitはwhileループ内にあってはなりません。 – jdweng