我想编写一个可以在命令行中处理输入的控制台应用程序,如下所示:
type file1.csv file2.csv | TestPipe.exe input1
或
((type file1.csv file2.csv | TestPipe +) & (type file3.csv file4.csv | TestPipe +)) | TestPipe +
在我的TestPipe代码中,我只接收input1作为print input1,如下所示:
static void Main(string[] args)
{
Console.WriteLine(string.Format("Your input is {0}", args[0]));
}
现在我想在另一个ConsoleApplication.exe中运行TestPipe,其代码如下:
Process Test = new Process();
Test.StartInfo.FileName = @"C:\Users\Administrator\Downloads\TestPipe\TestPipe\bin\Debug\TestPipe.exe";
Test.StartInfo.UseShellExecute = false;
Test.StartInfo.RedirectStandardInput = true;
Test.Start();
StreamWriter myStreamWriter = Test.StandardInput;
string inputTxt;
do
{
inputTxt = Console.ReadLine();
} while (inputTxt.Length != 0);
myStreamWriter.Close();
Test.WaitForExit();
Test.Close();
但是,我在} while (inputTxt.Length != 0);
问题:
1)如何更改代码,以便在命令行中运行type file1.csv file2.csv | TestPipe.exe input1
?
2)如何在TestPipe中获取file1.csv,file2.csv字符串值?
3)我想运行嵌套的重定向输入,如下所示:((type file1.csv file2.csv | TestPipe +) & (type file3.csv file4.csv | TestPipe +)) | TestPipe +
答案 0 :(得分:0)
使用以下命令启动您的应用程序
var proc = System.Diagnostics.Process.Start("D://TestPipe.exe", "type file1.csv file2.csv | TestPipe.exe input1");
您可以使用Main
中的args []访问TestPipe.exe中的这些值 static void Main(string[] args)
{
//args[0] == type
//args[1] == file1.csv
//args[1] == file2.csv
}