为什么在 cmd.exe 中输入“help”时某些命令不显示?

为什么在 cmd.exe 中输入“help”时某些命令不显示?

例如,netstat。当您输入help 时,它不会显示,但netstat /?会提供信息。

还有其他未列出的命令吗?

此外,该命令netstat /? > netstat.txt不起作用。知道为什么吗?
netstat.txt 文件已创建但仍然为空。

我对地图有写权限,并且 CMD.EXE 以管理员身份运行。

答案1

netstat.exe是一个单独的可执行文件,位于 C:\Windows\system32 中(或者至少在 XP 上是这样),而不是其中的命令cmd.exe

此文件夹中(以及 Windows 树中的其他文件)还会有大量其他可执行文件,当您help从中键入时它们不会显示出来cmd.exe

答案2

(我本来要回答这个问题,但后来我为你做了一些研究,这不是我最初想到的,所以 +1,因为我在这里学到了一点!)

当您键入时help,它会启动 C:\Windows\SysWOW64\help.exe(或者猜测,在 32 位 Windows 上是 C:\Windows\System32\help.exe)

我猜那个清单每一个可执行文件只会产生一个大多数人永远不会阅读的巨大列表,因此它们仅列出命令提示符的内置函数(if,,for等等goto)和其他通常经常使用的命令。

仅供参考,如果您想查看什么是“内置”命令以及什么是程序,您可以创建一个空文件夹并导航到它,然后输入

path=0

接下来,尝试任何命令,如果像打字一样if有效,那么它是内置的,如果打字帮助不起作用,你就知道它是位于其他地方的命令(再次+1,我以为帮助一直是一个内置命令!)

答案3

我认为 cmd.exe 帮助下列出的大多数(如果不是全部)命令都是直接内置于 cmd.exe 中的基本/内部命令。

例如,尝试查找名为del.exe或 的文件del.com,甚至是dir.exedir.com—— 很可能您找不到它(尝试:dir /s LookForThisFile.ext)。我打赌 10 美元,帮助下列出的大多数(如果不是全部)命令都是 cmd 的“内部”命令,而不是二进制文件本身。

这种做事方式也用于 bash,其中 help 用于获取有关 bash 脚本语言提供的几乎所有关键字的帮助。

相关内容