1

我的程序采用几个文件名作为命令行参数,例如:

./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() 似乎让我参与其中。但它只是将每次出现的 , 等解析--namefile1-F--format选项的值,无法知道哪个--priority参数属于哪个文件。我考虑过对文件特定的参数使用不同的语法并手动解析它们,但是由于这个限制,我什至不能这样做。

有没有办法用 Clap 做到这一点?

4

0 回答 0