我的程序采用几个文件名作为命令行参数,例如:
./myProgram -F file1 file2
这个简单的案例适用于 Clap,实际上它是Arg::multiple()
.
但是,我还希望每个文件都有自己的参数,这会改变该特定文件的行为。简化示例:
./myProgram -F --name file1 ---format csv --priority 2 -F --name file2 --priority 1
在这里,file1 具有更高的优先级,并且与 file2 的格式不同。
简单地使用 Arg::multiple() 不再有效,因为文件特定的参数(格式、优先级)被解析为独立的参数,无法知道它们属于哪个文件。
Arg::allow_hyphen_values() 似乎让我参与其中。但它只是将每次出现的 , 等解析--name
为file1
-F--format
选项的值,无法知道哪个--priority
参数属于哪个文件。我考虑过对文件特定的参数使用不同的语法并手动解析它们,但是由于这个限制,我什至不能这样做。
有没有办法用 Clap 做到这一点?