12个稳定版本

2.2.1 2024年1月27日
2.2.1-rc2023年12月18日
2.2.0 2023年9月24日
2.1.0 2022年8月14日
0.1.0 2017年11月17日

#6Windows API

Download history 27216/week @ 2024-04-30 23509/week @ 2024-05-07 22774/week @ 2024-05-14 22046/week @ 2024-05-21 25328/week @ 2024-05-28 22677/week @ 2024-06-04 20325/week @ 2024-06-11 22534/week @ 2024-06-18 28741/week @ 2024-06-25 21670/week @ 2024-07-02 23339/week @ 2024-07-09 26539/week @ 2024-07-16 31306/week @ 2024-07-23 30726/week @ 2024-07-30 31116/week @ 2024-08-06 30610/week @ 2024-08-13

每月下载量 127,714
174 个crate(41个直接) 中使用

Apache-2.0 OR MIT

27KB
484

Wild::args for Rust

允许Rust应用程序在命令行上支持通配符参数(如*foo*file.???*.log.[0-9]等),在所有平台上一致,包括Windows。

Unix shell会自动解释通配符参数并将它们扩展(已转换为文件名)传递给应用程序,但Windows的.cmd.exe不会这样做。为了实现一致的多平台行为,此crate在Windows上模拟了类似Unix的扩展。您只需要使用wild::args()而不是std::env::args()

与使用来自std::env::args()的值的glob()相比,它更健壮,因为此crate了解参数引用,并且引号中的特殊字符("*")有意不进行扩展。

Windows上的glob语法仅限于glob crate支持的*?[a-z]/[!a-z]范围,精确解析引号参数遵循Windows的本地语法(特别是CommandLineToArgvW)。

用法

wild::args()std::env::args()的替代品。

[dependencies]
wild = "2"
fn main() {
    let args = wild::args();
    println!("The args are: {:?}", args.collect::<Vec<_>>());
}

Clap一起使用

let matches = clap::App::new("your_app")
    .arg()
    .arg()
    .arg()
    // .get_matches(); change to:
    .get_matches_from(wild::args());

依赖项

~12KB