12个稳定版本
2.2.1 | 2024年1月27日 |
---|---|
2.2.1-rc | 2023年12月18日 |
2.2.0 | 2023年9月24日 |
2.1.0 | 2022年8月14日 |
0.1.0 |
|
#6 在 Windows API 中
每月下载量 127,714
在 174 个crate(41个直接) 中使用
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