将type命令的输出作为C#中的命令行参数传递

时间:2018-01-18 14:57:45

标签: c# windows batch-file cmd

我想使用Win32命令type打开一个JSON文件,并通过命令行参数将其输出重定向到我的C#程序。

  • type Demo.json

给了我

{
   "Message" : "Hello World"
}

我想通过命令行参数将它传递给我的C#程序,如下所示

  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe Demo.cs
  • Demo type Demo.json

但我得到输出为: Demo.json

Demo.cs包括:

using System;
namespace Demo
{
  public class Program
  {
      public static void Main(string[] args)
      {
             Console.WriteLine(args[0]);
      }
  } 
}

我想重定向type命令的输出,将其传递给命令行参数。

1 个答案:

答案 0 :(得分:1)

不要通过命令行参数传递文件的内容。相反,将数据传输到stdin然后从stdin读取程序:

class Program
{
    static void Main(string[] args)
    {
        string contents = Console.In.ReadToEnd();

        Console.WriteLine("Read from stdin: " + contents);
    }
}

并运行它:

C:\Projects\ConsoleApp1\bin>type my-file.txt | ConsoleApp1.exe