Chúng không được hiển thị trong help bởi vì chúng không được định nghĩa ở bất kỳ nơi nào
Các lệnh được hiển thị trong help được gọi là "tích hợp" (tức là "các lệnh tích hợp"). Chúng được cung cấp bởi vỏ ( cmd.exe ), và chỉ là các chức năng nội bộ. Mọi thứ khác là một chương trình bên ngoài được thực thi và chạy với các đối số được cung cấp.
Các chương trình này có thể là bất cứ nơi nào trong của bạn %PATH%. %PATH% là một biến hệ thống chứa danh sách các đường dẫn để tìm kiếm các chương trình có thể chạy. Về cơ bản nó chỉ là một danh sách các thư mục.
Khi bạn chạy ping X.X.X.X, nó bắt đầu xem qua chúng cho đến khi tìm thấy một thư mục có tệp gọi là ping.exe và cố gắng chạy nó với X.X.X.X là tham số đầu tiên. (Gợi ý, tôi nghĩ ping.exe trong C:\Windows\System32, nơi hầu hết các tiện ích mà bạn liệt kê trực tiếp)
Tại sao nó không liệt kê tất cả các chương trình có thể? Bởi vì có thể có hàng ngàn, và việc liệt kê tất cả chúng có thể mất một thời gian rất, rất dài (và mục đích của help là để liệt kê các phần tử tích hợp, để bạn biết các lệnh nào được shell cung cấp và sẽ có sẵn trên bất kỳ hệ thống Windows nào và không bị thiếu hoặc có thể bị thiếu hoặc khác nhau trên một hệ thống Windows cụ thể).
Khi điều tra sâu hơn, dường như có một vài lệnh được liệt kê trong help đó là các lệnh bên ngoài (như icacls ). Tôi chỉ có thể suy đoán lý do tại sao chúng được chọn để đưa vào, nhưng ở trên vẫn giữ nguyên tắc chung cho các shell (có thể là Windows, Linux hoặc OS X) và 90% + các lệnh được liệt kê bởi help.