영어로 읽기

다음을 통해 공유


ProcessStartInfo.RedirectStandardInput 속성

정의

애플리케이션의 입력을 StandardInput 스트림에서 읽을지 여부를 나타내는 값을 가져오거나 설정합니다.

public bool RedirectStandardInput { get; set; }

속성 값

입력을true 에서 읽어야 하는 경우 StandardInput이고, 그러지 않으면 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 하려면 를 로 설정 RedirectStandardInputtrue해야 합니다. 그렇지 않으면 스트림에 쓰기가 StandardInput 예외를 throw합니다.

적용 대상

제품 버전
.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

추가 정보