gpt4 book ai didi

command-line-interface - 创建命令行界面时的注意事项

转载 作者:行者123 更新时间:2023-12-01 11:07:41 24 4
gpt4 key购买 nike

有很多 GUI 最佳实践。我正在寻找开发命令行程序时的最佳实践。

例如,如果我要创建一个备份程序,什么是最好的?

考虑一、调用:

program.exe备份

program.exe/备份

program.exe -备份

program.exe --备份

考虑2,参数:

program.exe backup "C:\file1.txt""C:\file1.bak"(隐式源和目标)

program.exe backup -source "C:\file1.txt"-destination "C:\file1.bak"(显式)

program.exe backup -source "C:\file1.txt""C:\file2.txt""C:\file3.txt"-destination "C:\files.bak"(多个来源)

program.exe backup -source "C:\file1.txt"-source "C:\file2.txt"-source "C:\file3.txt"-destination "C:\files.bak"(多个来源, 替代语法)

考虑 3,链接:

program.exe backup "C:\file1.txt""C:\file1.bak"backup "C:\file2.txt""C:\file2.bak"(应该允许吗?)

考虑4,打字经济:

program.exe备份

程序.exe bkp

program.exe b(所有这些都应该是同一个命令的别名吗?)

最佳答案

我总是喜欢什么(按重要性从高到低的顺序):

  • 最终用户最容易理解
  • 最不模糊
  • 遵循编码平台的惯例
  • 在我的代码中最容易解析

所以在 Windows 上我会选择 / 作为前缀(遵循约定),/source/destination(最容易理解AND 最少歧义)并且不允许链接,因为这会增加解析的复杂性,所以:

program.exe /backup /source:"c:\source" /destination:"c:\destination"

无论如何也允许参数名称的缩写版本,因此您可以允许将上述内容缩小为:

program.exe /b /s:"c:\source" /d:"c:\destination"

但不要让它变得比这更神秘。此外,包括一个 /? 参数,可用于列出程序的语法。正如 Peter M 在对我的回答的评论中指出的那样,当用户在不指定任何参数的情况下调用您的程序时,最好采用与 /? 相同的方式。没有什么比运行 CLI 程序和接收更无用和更令人沮丧的了:

Program Name v1.01

No parameters specified, use /? for help

与最后一点相关的另一件需要考虑的重要事情是:不要重新发明轮子。那里有无数的命令行解析器,请查看 this question 的答案作为起点(如果您使用的是面向 Windows 的 C#)。 不要在别人已经做得很好的事情上做得平庸

关于command-line-interface - 创建命令行界面时的注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com