![了解应用程序的 cmd 参数](https://linux22.com/image/1385409/%E4%BA%86%E8%A7%A3%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%20cmd%20%E5%8F%82%E6%95%B0.png)
我正在测试一个应用程序,它的源代码除了帮助输出之外没有提供有关实际语法的任何线索。
我尝试了很多组合来让它工作,但由于语法无效,它一直输出帮助屏幕。用法如下:
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
?