You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让System.CommandLine支持--date=2023-02-06格式的命令行参数?

让System.CommandLine支持--date=2023-02-06格式的方法

System.CommandLine默认就支持--选项名=值这种等号连接的参数格式,无需额外配置。如果你的代码目前不支持,大概率是使用方式有误,以下是正确的实现示例及问题排查点:

正确实现示例

using System.CommandLine;

var rootCommand = new RootCommand("日期参数测试工具");
var dateOption = new Option<DateOnly>("--date", description: "需要指定的日期");
rootCommand.AddOption(dateOption);

rootCommand.SetHandler((DateOnly date) =>
{
    Console.WriteLine($"解析后的日期:{date.ToString("yyyy-MM-dd")}");
}, dateOption);

await rootCommand.InvokeAsync(args);

用上述代码测试两种参数格式:

  • 空格分隔:dotnet run --date 2023-02-06
  • 等号连接:dotnet run --date=2023-02-06

两种格式都能正确解析出日期值。

常见问题排查

如果仍然无法支持等号格式,检查以下几点:

  • 确认使用的是System.CommandLine的正式稳定版本(避免预览版存在的兼容性问题)
  • 检查是否自定义了参数解析器,覆盖了库的默认解析逻辑
  • 确认选项定义时未设置特殊约束,导致等号格式被拦截

内容的提问来源于stack exchange,提问作者Atlass-

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:47:24