当我在 Windows 命令行中输入时help
,它会列出一大堆命令。但是我发现有一整套命令没有出现在此列表中,例如许多网络命令,例如ping, tracert, arp, netstat, net
等。我确信还有一大堆非网络命令也没有列出。
所以我的问题是这样的。为什么这些额外的命令没有显示出来help
?是否有只显示的命令子集/组help
?是否有任何命令/方法可以列出可以在 Windows 中执行的所有命令?(我不是在谈论安装某些新软件时添加到路径中的额外 .exe。)
答案1
帮助中列出的命令是命令提示符 shell 本身内的命令。其他程序(如 ping、tracert 等)是位于系统文件目录中的应用程序。如果您想查看所有应用程序,可以在 %systemroot% 目录中运行 dir。注意:并非所有应用程序都会在命令提示符 shell 中运行,或者可能没有命令行界面。
答案2
它们没有显示出来,help
因为它们没有在任何地方定义。
中显示的命令help
称为“内置命令”(即“内置命令”)。它们由 shell ( cmd.exe
) 提供,并且只是内部函数。其他所有内容都是使用提供的参数执行和运行的外部程序。
这些程序可以位于您的任何地方%PATH%
。%PATH%
是一个系统变量,其中包含用于搜索可运行程序的路径列表。它基本上只是一个文件夹列表。
当您运行 时ping X.X.X.X
,它会开始查找它们,直到找到一个包含名为 的文件的文件夹ping.exe
,并尝试将其X.X.X.X
作为第一个参数来运行。(提示,我认为ping.exe
是在 中C:\Windows\System32
,您列出的大多数实用程序都存在于其中)
为什么它没有列出所有可能的程序?因为可能有数千个程序,而列举所有这些程序可能需要非常非常长的时间(其目的help
是列出内置程序,以便您知道哪些命令由 shell 提供并且应该在任何 Windows 系统上可用,哪些命令没有提供并且可能在特定的 Windows 系统上缺失或不同)。
经过深入调查,似乎列出了一些help
外部命令(如icacls
)。我只能推测为什么选择它们,但上述内容仍然适用于 shell(无论是 Windows、Linux 还是 OS X),并且 列出的 90% 以上的命令help
。
答案3
“帮助”命令仅显示最基本的命令,如果一次列出所有命令,则会丢失一次,我猜这就是为什么它只列出必要的一次命令。
有关命令提示符命令的完整列表,请参见此处:
http://pcsupport.about.com/od/commandlinereference/tp/command-prompt-commands-p1.htm