Я знаю, что есть несколько постов о передаче аргументов программе, но я не смог решить мою проблему.
Я пытаюсь передать некоторые аргументы программе из моего кода на c #.
При добавлении аргументов /c < input.txt | program2 > output.txt
я получаю System.InvalidOperationException
.
Если аргументы не переданы, код работает нормально и запускается program1
.
Я не смогчтобы понять, как правильно объяснить мои аргументы.
Возможно, использование <
, >
, |
и тот факт, что среди аргументов есть вторая программа, доставляет мне неприятности?
Это прекрасно работает в cmd
.
Мой код:
var myProcess = new System.Diagnostics.Process
{
StartInfo = new System.Diagnostics.ProcessStartInfo
{
FileName = "program1",
Arguments = "/c < input.txt | program2 > output.txt",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = false
}
};
myProcess.Start();
while (!myProcess.StandardOutput.EndOfStream)
{
string line = myProcess.StandardOutput.ReadLine();
}
myProcess.WaitForExit();