Like shell-words, but for Windows that somewhat mirrors CommandLineToArgvW, following VC++ 2008 parsing rules.
Written purely in Rust, so runs on any operating system! Windows is not a requirement!
Minimum tested Rust version is 1.56.1
, but this may compile and work on
earlier versions!
[Dependencies]
winsplit = "0.1"
If you want to use this without std
library, this library can be compiled for
use with alloc
by disabling the std
feature:
[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"
]
);
This library follows the 2008 parsing rules for VC++ 9.9 (msvcr90.dll) that was released with Visual Studio 2008. See C/C++ parameter parsing rules for more details.
You can also check out the mirror of the rules and examples at the wiki documentation page for this repository.
Goes to David Deley for documenting the complexities of the Windows parameter parsing logic and providing numerous examples found at https://daviddeley.com/autohotkey/parameters/parameters.htm.
This project is licensed under either of
Apache License, Version 2.0, (LICENSE-APACHE or apache-license) MIT license (LICENSE-MIT or mit-license) at your option.