Они не отображаются в help
потому что они не определены ни в одном месте.
Команды, показанные в help
, называются «встроенными» (т. Е. «Встроенными командами»). Они предоставляются оболочкой (cmd.exe
) и являются только внутренними функциями. Все остальное - внешняя программа, которая выполняется и запускается с предоставленными аргументами.
Эти программы могут быть в любом месте вашего %PATH%
. %PATH%
- системная переменная, которая содержит список путей для поиска программ, которые можно запустить. В основном это просто список папок.
Когда вы запускаете ping X.X.X.X
, он начинает просматривать их, пока не найдет папку с файлом ping.exe
и не попытается запустить ее с X.X.X.X
в качестве первого параметра. (Подсказка, я думаю, что ping.exe
находится в C:\Windows\System32
, где находится большинство перечисленных вами утилит)
Почему в нем не перечислены все возможные программы? Поскольку их может быть несколько тысяч, и перечисление всех из них может занять очень-очень много времени (и цель help
- перечислить встроенные модули, чтобы вы знали, какие команды предоставляются оболочкой и должны быть доступны в любой Windows системы, которые отсутствуют и могут отсутствовать или отличаться в конкретной системе Windows).
После более глубокого изучения в help
перечислены несколько команд, которые являются внешними командами (например, icacls
). Я могу только размышлять о том, почему они были выбраны для включения, но вышеизложенное все еще действует как общее правило для оболочек (будь то для Windows, Linux или OS X) и более 90% команд, перечисленных в help
.