使用命令行解析器解析以“”结尾的路径

本文关键字:结尾 路径 命令行 | 更新日期: 2023-09-27 18:35:11

在C#中,我解析以"''"结尾的路径,如下所示:-p "C:''My Folder''"。问题是,在解析时,我得到C:''My Folder"(带有最后一个引号),而不仅仅是C:''My Folder。有没有办法避免这个问题?我已经尝试过使用CommandLineParser和NDesk.Options,两者都以相同的问题告终...

选项类:

    class Options
{
    [Option('p', "path", Required = false)]
    public string parsedPath { get; set; }
    [Option('f', "file", Required = false)]
    public string parsedFile { get; set; }
    [Option('l', "label", Required = false)]
    public string parsedLabel { get; set; }
    [Option('t', "torrent", DefaultValue = false)]
    public bool isTorrent { get; set; }
}

代码实现:

var options = new Options();
CommandLine.Parser parser = new CommandLine.Parser();
parser.ParseArguments(args, options);

编辑:我正在使用命令行解析器库库

使用命令行解析器解析以“”结尾的路径

你必须转义反斜杠: -p "C:'My Folder''"

博士

转义M('M)不会转义,但转义引号('")可以。唉,发生的事情是你试图转义引号成为字符串的一部分来产生(C:'My Folder")。我完全可以理解为什么会发生这种情况,但这有点不直观.
我偶然发现了同样的东西,但来自相反的方向。我的参数-myPath C:'what ever' --verbose,但这导致我的路径被C:'what。所以我-myPath "C:'what ever'" --verbose添加了引号,MyPath变得C:'what ever" --verbose