如果我想知道 Linux 程序的选项是什么,我会执行man program
或program --help
查找。在 Windows 上如何做到这一点?
我正在阅读有关如何从命令行运行屏幕保护程序的信息,并且发现了这个文件:
%SYSTEMROOT%\system32\scrnsave.scr
直接调用时,将启动该屏幕保护程序的设置页面,而不是实际的屏幕保护程序。
我试了help scrnsave.scr
很多scrnsave.scr /?
次,但都不起作用。直到我尝试谷歌,我才找到命令行选项在 MSDN 文章中间,并且知道我必须使用:
%SYSTEMROOT%\system32\scrnsave.scr /s
我怎么知道 /s 选项?在 Windows 命令行中查找程序选项的正确方法是什么?
答案1
那里不是正确的方法。但在 Unix 上也没有。这个--help
惯例实际上是GNU惯例。它在 Linux 发行版中很普遍,其中操作系统实用程序是 GNU 实用程序。但是你不会在 BSD 上的操作系统实用程序中看到它,例如:
$ /bin/sh --help
Illegal option --
$ nawk --help
nawk: no program given
$
正如--help
许多人认为该惯例是个好主意并采纳一样;许多人认为该/?
惯例(起源于 DR-DOS 5.0 的惯例/H
)是个好主意并采纳。您会发现许多命令都支持它。但同样,并非所有 Unix 或 Linux 中的命令都支持它,--help
并非所有 DOS 或 Windows NT 中的命令都支持它/?
。
您可能认为这man
可以解决问题。然而,多亏了 GNU info
,以及一些程序维护者似乎只将信息(有时甚至是命令行选项等基本信息)放在页面中info
,而不放在man
页面中,反之亦然,这并不是人们想象中的万能药。
man
在 DOS 和 Windows NT 世界中并没有真正对应的版本。最接近的版本是help
命令,在 DR-DOS 5.0 及更高版本和 MS-DOS 6.0 及更高版本中将查找命令在帮助页面数据库中并显示该页面。这里的问题是,尽管操作系统自己的所有管理实用程序都在此数据库中有页面,但几乎没有其他程序有此页面,并且系统很难添加第三方信息。
(DR-DOS 6.0 中引入的 DOSBook 是所有商业 DOS 中最好的。MS-DOS 使用 QuickHelp 文件,这是一种编译工具,它不随基本操作系统提供。PC-DOS 7 有 IPF 系统,这是一种编译工具,操作系统同样缺乏它。OS/2 有与 PC-DOS 相同的 IPF 系统,以及与之集成的 HELP 命令,尽管编译器 IPFC 再次位于开发人员工具包中,而不是操作系统的包装盒中。许多年前,我写道对提供的 HELP 命令进行了改进可以配置哪个命令引用s它默认使用环境变量查找命令。我还为一些我编写的命令提供了扩展的命令参考书。)
Windows NT 仍然help
命令直到今天。与 MS-DOS 6 相比,这是一个倒退,更不用说与 DR-DOS、PC-DOS 和 OS/2 相比了。
因此实际答案是:您应该浏览 MSDN,或阅读其他人的 WWW 站点,或阅读一本书,或阅读源代码(如果它是开源的),或者只是通过心灵感应了解……
话虽如此,WWW 上的文档并不是一件坏事,而且如今人们普遍期待这样做。(尽管人们可能会错过 IPFC 构建索引和目录之类的东西。☺)正如您所见,Microsoft 在 TechNet 和 MSDN 上记录了大量命令行命令。
进一步阅读
- 4.7 命令行界面标准. GNU 编码标准。自由软件基金会。
- 自定义 DOSBook. 火山口。
- 乔纳森·德·博因·波拉德。帮助信息服务. 32 位命令解释器命令参考。
- 帮助. TCC/LE 命令参考。 JP 软件。
- IPF 编程指南和参考. OS/2 Warp 4.5 开发人员工具包。IBM。
- Windows XP 命令行参考 A–Z. TechNet。微软公司。
答案2
对于纯 Windows 程序,显示帮助通常是/?
。然而,越来越多的跨平台程序出现,它们使用-?
,--help
甚至其他命令。
实际上,Windows 程序根本不需要支持任何帮助输出,因此这完全取决于程序开发人员。
屏幕保护程序有点特殊,因为微软已经定义了屏幕保护程序必须支持哪些功能。而你发现的正是这个定义。显然微软没有定义任何强制的/?
命令行开关。