2016-04-04 2 views
2

私はコンソールアプリケーションを作成しています。私は> cmdコマンドを使用したいので、ユーザーが自分のアプリケーションを使用するときに、out.txt構文を使って出力をchoiseのテキストファイルに書きたいと指定することができます。> out.txtコマンドの使用C#

コンソールアプリケーションの引数を解析して '>'を入力し、ファイルを書き込むことで、これを処理できます(下記のサンプル)。しかし、これを処理するよりエレガントな方法はありますか?

public void Run(string[] args) 
     { 



      switch (args[0]) 
      { 
       case "/a": 
        { 
         Console.WriteLine("Hi There"); 
         Console.WriteLine(); 
         return; 
        } 

私はmyApplication.exe入力すると、私はコードをコンソールには何も書き込まdoesntのとわからないout.txtをがあるディレクトリout.txtをmyApplication.exe/A>を入力すると/コードが実行さ 罰金(どこにいても)?

答えて

4

これはプログラムに書き込む必要はありません。それはCMD.EXEによって処理されます。あなたがしなければならないのは、Console.WriteまたはConsole.WriteLineでコンソールに書き込むことだけです。次に、アプリケーションのユーザーが>を使用して標準出力をリダイレクトしたい場合、そのユーザーは可能です。サイドノートとして

、CMD.EXEはすでに、コマンドラインを解析され、このような何かを解釈していますので、あなたが「>」をキャッチし、解釈しようとしても、あなたがそれを見ることは決してないだろう:

myprog.exe > foo.txt 

"引数なしでmyprog.exeを実行し、その出力をfoo.txtにリダイレクトします"プログラムに渡される引数リストには、>またはfoo.txtは含まれません。

+0

ファイルはどこに書き込まれますか?それは私のために働いていません – nlstack01

+0

あなたが指定したパスにファイルを書き込みます。フルパス(ファイル名のみ)を指定しないと、現在の作業ディレクトリに書き込まれます。 – adv12

0

あなたは何もする必要はありません。コマンドラインがそれを行います。ちょうどconsole.writeを実行すれば動作します。

1

デフォルトではコマンドラインがこれを処理します。アプリケーションがConsole.WriteLine(...)を使用してコンソールに書き込む場合や、コンソールに書き込む他の方法の場合、ユーザーはいつでも '>'記号を使用して出力をファイルにパイプすることができます。これはWindowsのコマンドプロンプト自体に組み込まれています。

関連する問題