了解应用程序的 cmd 参数

了解应用程序的 cmd 参数

我正在测试一个应用程序,它的源代码除了帮助输出之外没有提供有关实际语法的任何线索。

我尝试了很多组合来让它工作,但由于语法无效,它一直输出帮助屏幕。用法如下:

Usage is : ngenerator <options> filepath|directorypath
Where <options> may be :

        -h : print this help notice
        -d : Tell NGenerator that the supplied path is a directory path -o filename : write the source code in filename
        -u Unsafe|Safe[UnsafeWithWrapper : the degree of "unsafeness" of the source, see man

现在,如果您正在查看此内容,那么正确的工作方式是什么?该程序完全没有文档,并且它来自一个已终止的项目。乍一看,您能告诉我您认为输入语法的正确方法是什么吗?

答案1

回答这个问题标题..命令行帮助的输出应该是标准的。通常,Linux 比 Windows 更一致,但通常可以这样理解:

C:\>attrib /?
Displays or changes file attributes.

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
       [drive:][path][filename] [/S [/D] [/L]]
...

规则通常如下:

  • 中的所有内容[]都是可选的
  • 可选参数可以嵌套:[/S [/D] [/L]]意味着您可以选择提供/S,如果这样做,您还可以选择提供/D和/或/L
  • 一些参数是“非此即彼”的情况:[+R | -R]意味着您可以选择指定其中一个+R或两个,-R但不能同时指定。

这是另一个例子:

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

请注意,Windows 有时使用-和有时使用/前缀参数(叹气)。这表明一些可选参数,例如-n也需要一个值,count并且这也是target_name强制性的,因为它不在[]

ngenerator的输出:

Usage is : ngenerator <options> filepath|directorypath
Where <options> may be :

        -h : print this help notice
        -d : Tell NGenerator that the supplied path is a directory path -o filename : write the source code in filename
        -u Unsafe|Safe[UnsafeWithWrapper : the degree of "unsafeness" of the source, see man

...非常糟糕。看到这个,我会尝试:ngenerator -o c:\file.h。它是否c:\file.h已经存在?查看存储库,有大量代码来解析这样一个简单的命令行,这不会给应用程序带来太大的信心。它需要吗C:\\file.h

相关内容