1 个不稳定版本
0.1.0 | 2022 年 8 月 4 日 |
---|
在 命令行界面 中排名第 774
每月下载量 3,671
用于 34 个 Crates(5 个直接使用)
24KB
275 行
winsplit
类似于 shell-words,但为 Windows 设计,某种程度上反映了 CommandLineToArgvW,遵循 VC++ 2008 解析规则。
完全用 Rust 编写,因此可以在任何操作系统上运行!Windows 不是必需的!
最低测试的 Rust 版本是 1.56.1
,但可能在更早的版本上编译和运行!
安装
[Dependencies]
winsplit = "0.1"
如果您想在不使用 std
库的情况下使用此库,可以通过禁用 std
功能将其编译为与 alloc
一起使用
[Dependencies]
winsplit = { version = "0.1", default-features = false }
使用方法
let args = winsplit::split(
r#"C:\ProgramFiles\Example\example.exe --key "some value" arg1 arg2"#
);
assert_eq!(
args,
&[
r"C:\ProgramFiles\Example\example.exe",
"--key",
"some value",
"arg1",
"arg2"
]
);
解析规则
此库遵循 Visual Studio 2008 中发布的 VC++ 9.9 (msvcr90.dll) 的 2008 年解析规则。有关更多详细信息,请参阅 C/C++ 参数解析规则。
您还可以查看此仓库的规则和示例的镜像,请访问 wiki 文档页面。
特别感谢
感谢 David Deley 记录 Windows 参数解析逻辑的复杂性,并提供了大量示例,可在 https://daviddeley.com/autohotkey/parameters/parameters.htm 找到。
许可协议
本项目许可协议为以下之一:
Apache 许可协议,版本 2.0(LICENSE-APACHE 或 apache-license)MIT 许可证(LICENSE-MIT 或 mit-license),任选其一。