Прочитать на английском

Поделиться через


Process.StandardInput Свойство

Определение

Получает поток, используемый для записи ввода приложения.

public System.IO.StreamWriter StandardInput { get; }
[System.ComponentModel.Browsable(false)]
public System.IO.StreamWriter StandardInput { get; }

Значение свойства

Объект StreamWriter, используемый для записи стандартного входного потока приложения.

Атрибуты

Исключения

StandardInput Поток не был определен, так как для RedirectStandardInput установлено значение false.

Примеры

В следующем примере показано, как перенаправить StandardInput поток процесса. В примере команда запускается sort с перенаправленными входными данными. Затем он запрашивает у пользователя текст и передает его процессу sort с помощью перенаправленного StandardInput потока. Результаты 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 поток, можно программно указать входные данные. Например, вместо ввода с клавиатуры можно предоставить текст из содержимого указанного файла или выходные данные из другого приложения.

Примечание

Чтобы использовать StandardInput, необходимо присвоить falseзначение ProcessStartInfo.UseShellExecute , а — значение trueProcessStartInfo.RedirectStandardInput . В противном случае запись в 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

См. также раздел