Command to see all Windows commands
The commands listed within help are commands that are within the command prompt shell itself. The other programs such as ping, tracert etc are applcations located with the system files directories. You can run dir within the %systemroot% directory if you want to see all the applications. Note: not all applications will run within the command prompt shell or may not have a command line interface.
They are not shown in help
because they are not defined in any one place.
The commands shown in help
are known as "built-ins" (i.e., "built-in commands"). They are provided by the shell (cmd.exe
), and are just internal functions. Everything else is an external program which is executed and run with the arguments provided.
These programs can be anywhere in your %PATH%
. %PATH%
is a system variable which contains a listing of paths to search for programs that can be run. It's basically just a list of folders.
When you run ping X.X.X.X
, it starts looking through them until it finds a folder with a file called ping.exe
and tries to run it with X.X.X.X
as the first parameter. (Hint, I think ping.exe
is in C:\Windows\System32
, where most of the utilities that you listed live)
Why doesn't it list all the possible programs? Because there could be thousands, and enumerating all of them could take a very, very long time (and the purpose of help
is to list the built-ins, so you know which commands are provided by the shell and should be available on any Windows system and which are not and might be missing or different on a particular Windows system).
Upon deeper investigation, there seems to be a few commands listed in help
which are external commands (like icacls
). I can only speculate on why they were chosen for inclusion, but the above still holds as a general rule for shells (be they for Windows, Linux, or OS X), and 90%+ of the commands listed by help
.