私は、コンソールアプリケーションの引数として複数のパスを渡すためにしようとしていますが、「パスに無効な文字」エラーを取得しています。引数"C:\test\"
の最後の2文字がエスケープされた二重引用符で間違っているようです。例えばC#がコマンドライン引数の一部をエスケープしないように見えるのはなぜですか?
、私はそうのようなC#で新しい空のコンソールアプリケーション作成する場合:
static void Main(string[] args)
{
Console.WriteLine(args[0]);
Console.ReadLine();
}
と、プロジェクトのプロパティの下 - >デバッグ私はそうのようなコマンドライン引数を追加します
をその後、私の出力は次のようになります。
値は/アンエスケープ評価されている場合は、なぜ\t
はタブになっていないのですか?
値は非エスケープ/評価されていない場合は、なぜ\"
は、二重引用符になるのでしょうか?
(注:私は私がすることによってこの問題を回避することができます知っている、例えば、末尾のバックスラッシュをトリミングなどの引数が評価さ部分的ように見える理由を私は理解する助けを求めています)
関連http://stackoverflow.com/questions/17168961/how-do-i-escape-in-verbatim-string and http://stackoverflow.com/questions/15932279/escaping-command-line-arguments- in-c-sharp-for-urls-and-local-and-network-paths –