问题标签 [clap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 使用 clap 3 派生宏,我如何指定组的至少一个参数必须存在?
我有一个拍手结构如下:
我如何指定至少一个{arg_a, arg_b, arg_c}
必须存在,但也可以存在更多?
rust - 根据 Rust 中的值确定给出哪个命令行参数(例如使用 Clap)
我正在用 Rust 构建一个 CLI 实用程序。为简单起见,假设它执行作为命令行参数给出的任务。用户还可以通过参数选择性地指定谁请求了任务(例如“工程”或“人力资源”)和任务的优先级(“高”或“低”)。
我希望程序能够识别仅从值中指定的参数,即没有命令行标志。(参数的可能值不重叠。)例如,这些都应该有效:
当然,我可以为此编写自定义逻辑,但我的问题是:我可以使用 crate 来解析命令行参数,例如clap吗?
Fwiw,我尝试使用 clap 中的ArgGroup
结构来获得这种行为,但没有成功。所以:
这坚持将“高”解析为 a requested_by
,而不是 a priority
,因此它给出:
错误:“高”不是“<requested_by>”的有效值 [可能的值:工程、人力资源]
用法:应用程序 <task_name> <requested_by|priority>
有关更多信息,请尝试 --help
rust - 维护参数顺序
我有一组 rust 程序,其中参数的顺序很重要,例如
mytool --foo 这个 --bar that
不一样
mytool --bar that --foo this
我真的很想简单地从左到右迭代 args,但是 clap 在抽象掉它方面做得很好。
我什至愿意迭代所有 args 并使用 indices_of 生成一个有序的参数 Vec 然后处理它,但我不认为 clap 提供了一种以任何顺序迭代所有 args 的方法。我将有一组相当大的相当复杂的命令行,所以我宁愿不必重复参数名称列表。
我想保留拍手所做的所有伟大的事情,但我真的需要知道输入的顺序。
有什么建议吗?
rust - 带有派生宏的 Clap 选项无法在 rust clap 3.0.0-beta.5 中编译
我正在尝试最新 beta 版 clap的索引页面上的“使用派生宏”示例:
不幸的是,它无法编译:
我试图在这个 GitHub 标签的 tar 文件中找到完整的示例文件“examples/01d_quick_example.rs” ,但那里似乎不存在。
我很欣赏这是一个测试版,但是这个功能是否可以正常工作,还是我做错了什么?
谢谢!
rust - 如何用 clap 解析非标准命令行参数?-bypas1234567890
我有一个使用 clap 解析其参数的 rust 应用程序,但我需要能够接受每次调用时都会更改的参数。参数将始终以相同的 6 个字符开头 -bypas,但接下来的 10 个字符将随着每次调用而改变。有没有办法用拍手部分识别一个论点?
rust - 使用 - 作为标准输入/标准输出
许多命令行工具可让您-
用于标准输入或标准输出。在 Rust 中是否有一种惯用的方式来支持它?
处理命令行参数的最常用方法似乎是clap
. 如果我只想处理路径而不想要特殊情况-
,我可以使用
然而,要处理-
成为标准输出的情况,它就更复杂了。now的类型file
必须是Box<dyn Write>
因为stdout()
不是 a File
,而且正确设置它有点复杂。不难,但是那种需要多次复制并且容易搞砸的样板。
有没有一种惯用的方法来处理这个问题?
rust - 如何在不需要显式值的情况下使一个论点暗示另一个论点?(--foo,不是--foo true)
我希望一个论点暗示另一个论点,尽管它们不采用明确的值。--simple-anime
或者--complex-anime
应该暗示--anime
。应该工作的 API 是default_value_ifs
,如果前者存在,--anime
也将是真的。问题是那个选项打开了takes_value
,如果我把它关掉,暗示就不会发生。
简单的例子:--dog
暗示--mammal
. 两者都不应该需要一个值——如果参数存在,它就是真的。
在 rust 游乐场尝试:https ://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4855a88381f65cef8d07f7eab4d41e78
rust - 如何使用 Clap 将字符串导入 Rust 应用程序解析 args?
我是 Rust 的新手,我一直在写一些练习应用程序。我正在尝试使用 Clap 接受命令行参数。下面的代码接受一个字符串和一个数字并将它们打印出来,如下所示:
这很好用,但我希望能够像这样通过管道输入代替字符串:
尝试这样做会产生:
我可以像这样使用 xargs 解决这个问题:
有没有更好的方法来做到这一点,这样我就可以在仍然使用 -n 选项的同时接受管道中的字符串?提前致谢。
额外的问题: 如果我使用 xargs 管道输入字符串,我可以在字符串中添加换行符(分隔符设置为 \0),它们会反映在输出中。如果我在没有 echo 和 xargs 的情况下直接传递它,则输出中会显示文字 '\n'。有没有办法在直接运行时表示换行符?
rust - 从未使用过的参数
我正在尝试添加另一个打印解析结果的参数,但不确定为什么会导致此错误:
代码在这里: