2011-01-18 2 views
0

Visual Studioを使用してC#で作成された簡単なコンソールアプリケーションがあります。それは入力パラメータを持ち、それを出力に返します。 これはコードです:"<messages><message>message</message></messages>"Visual Studioを使用してコンソールアプリケーションで入出力するときの奇妙なXMLの変更

static void Main(string[] args) 
    { 
     string msg = args[0];    
     Console.WriteLine(msg); 
    } 

は、その後、私は、文字列としてXMLが含まれているのparamを渡すためにしてみてください。私はアプリケーションを呼び出すためにコンソールを使用する場合は何も問題はありません。しかし、そのようなアプリケーションをデバッグしようとしたときに、私はにコマンドライン引数デバッグタブにパラメータ文字列を追加しました。この後

alt text 私のような予期しない出力を持っている:私たちは、このような出力を持っているとどのようにこれを克服するために、なぜ

^<messages^>^<message^>message^</message^>^</messages^> 

?前もって感謝します。この問題に対する最も簡単な解決策はここのような不本意文字交換されるべきである


静的な無効メイン(文字列[] args){ 列MSG =引数を[0]。
ます。Console.WriteLine(msg.Replace(「^」、「」);}

しかし、オペレーションシステムのコアのどこかに置かれ、そのような行動の理由から、バッチファイルを起動するようにWindowsがこの状況に対処します。 @Artem Kの答えに示されたリンクの後に、このような状況を克服するための2つの方法があります。残念ながら、この問題を扱う人はいません。問題の自分はどのようにバッチを起動するための引数を渡すことができます。

+0

私は私はあなたのコードを実行したときに、私は –

+0

を通過したとおりに、私はこれを再現することはできませんよ(メッセージ)を取得していますので、間違っているものを知りません。あなたはVS 2008またはVS 2010を使用していますか? ^は、csc.exeコマンドラインのエスケープ文字です。 –

+0

デバッグなしで実行してみてください(Ctrl + F5) – apros

答えて

1
+0

私は既にパラメータの引用符を使用していることがわかる画像を追加しました。私はあなたの答えを正しく理解していますか? – apros

+0

いいえ、これはWindowsのコマンドプロンプトで "<” and “>"が特殊文字であることを意味し、Visual Studioはコマンドプロンプトのエスケープ文字 "^"を使用してそれらをエスケープします。 –

+0

はい、あなたが正しい理由です。しかし、私の場合、どのようにこの問題を取り除くことができますか? – apros

0

をシェルに、 <と>には、スチームリダイレクションを行う特別な意味があります。 dir/w> myDirectory.txtを可能にする要素またはツリー|もっと...その他

@Artem Koshelevの投稿に従ってください。

関連する問題