ProcessStartInfo.RedirectStandardInput プロパティ

定義

アプリケーションの入力を StandardInput ストリームから読み取るかどうかを示す値を取得または設定します。

public bool RedirectStandardInput { get; set; }

プロパティ値

StandardInput から入力を読み取る場合は true。それ以外の場合は false。 既定値は、false です。

次の例は、プロセスのストリームをリダイレクトする StandardInput 方法を示しています。 コマンドは sort 、テキスト入力を読み取って並べ替えるコンソール アプリケーションです。

この例では、リダイレクトされた入力で sort コマンドを開始します。 次に、ユーザーにテキストの入力を求め、リダイレクトされたStandardInputストリームをsort介してプロセスにテキストを渡します。 結果が sort コンソールにユーザーに表示されます。

using System;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;

namespace ProcessStandardInputSample
{
    class StandardInputTest
    {
        static void Main()
        {
            Console.WriteLine("Ready to sort one or more text lines...");

            // Start the Sort.exe process with redirected input.
            // Use the sort command to sort the input text.
            using (Process myProcess = new Process())
            {
                myProcess.StartInfo.FileName = "Sort.exe";
                myProcess.StartInfo.UseShellExecute = false;
                myProcess.StartInfo.RedirectStandardInput = true;

                myProcess.Start();

                StreamWriter myStreamWriter = myProcess.StandardInput;

                // Prompt the user for input text lines to sort.
                // Write each line to the StandardInput stream of
                // the sort command.
                String inputText;
                int numLines = 0;
                do
                {
                    Console.WriteLine("Enter a line of text (or press the Enter key to stop):");

                    inputText = Console.ReadLine();
                    if (inputText.Length > 0)
                    {
                        numLines++;
                        myStreamWriter.WriteLine(inputText);
                    }
                } while (inputText.Length > 0);

                // Write a report header to the console.
                if (numLines > 0)
                {
                    Console.WriteLine($" {numLines} sorted text line(s) ");
                    Console.WriteLine("------------------------");
                }
                else
                {
                    Console.WriteLine(" No input was sorted");
                }

                // End the input stream to the sort command.
                // When the stream closes, the sort command
                // writes the sorted text lines to the
                // console.
                myStreamWriter.Close();

                // Wait for the sort process to write the sorted text lines.
                myProcess.WaitForExit();
            }
        }
    }
}

注釈

Process 、標準の入力ストリーム (通常はキーボード) から入力テキストを読み取ることができます。 ストリームを StandardInput リダイレクトすることで、プロセスの入力をプログラムで指定できます。 たとえば、キーボード入力を使用する代わりに、指定されたファイルの内容または別のアプリケーションからの出力からテキストを指定できます。

注意

を にfalse設定UseShellExecuteする場合は、 を に設定RedirectStandardInputするtrue必要があります。 それ以外の場合、ストリームに StandardInput 書き込むと例外がスローされます。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

こちらもご覧ください