如何在命令行中将输出重定向为输入?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在命令行中将输出重定向为输入?相关的知识,希望对你有一定的参考价值。
我想编写一个控制台应用程序,它可以在命令行中处理输入,如下所示:
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]));
}
现在我想在另一个Console Application.exe中运行Test Pipe,其代码如下:
Process Test = new Process();
Test.StartInfo.FileName = @"C:UsersAdministratorDownloadsTestPipeTestPipeinDebugTestPipe.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 +
答案
使用以下命令启动应用程序
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
}
以上是关于如何在命令行中将输出重定向为输入?的主要内容,如果未能解决你的问题,请参考以下文章