Comando para ver todos los comandos de Windows

1

Cuando escribo helpen la línea de comandos de Windows, enumera un montón de comandos. Sin embargo, encuentro que hay un conjunto completo de comandos que no aparecen en esta lista, por ejemplo, para muchos comandos de red, como ping, tracert, arp, netstat, netetc. Estoy seguro de que también hay un montón de comandos que no son de red y que tampoco están en la lista.

Así que mi pregunta es esta. ¿Por qué no se muestran estos comandos adicionales help? ¿Hay un subconjunto / grupo de comandos que solo se helpmuestra? ¿Hay algún comando / método para enumerar todos los comandos que se pueden ejecutar en Windows? (No estoy hablando de .exes adicionales que se agregan a la ruta cuando se instala algún nuevo software ...)

curso_ abierto
fuente
¿Qué versión de Windows?
EBGreen
Bueno, sin conocer su sistema operativo esto puede no aplicarse. No es una respuesta directa a su pregunta de todos modos. Si abre un indicador de Powershell y escribe Get-Command, enumerará todos los comandos disponibles. Comandos integrados (cmdlets), alias, exes, etc.
EBGreen

Respuestas:

1

Los comandos enumerados en help son comandos que se encuentran dentro del shell del símbolo del sistema. Los otros programas como ping, tracert, etc. son aplicaciones ubicadas con los directorios de archivos del sistema. Puede ejecutar dir dentro del directorio% systemroot% si desea ver todas las aplicaciones. Nota: no todas las aplicaciones se ejecutarán dentro del intérprete de comandos o pueden no tener una interfaz de línea de comandos.

David
fuente
1

No se muestran helpporque no están definidos en ningún lugar.

Los comandos que se muestran helpse conocen como "incorporados" (es decir, "comandos integrados"). Los proporciona el shell ( cmd.exe) y son solo funciones internas. Todo lo demás es un programa externo que se ejecuta y ejecuta con los argumentos proporcionados.

Estos programas pueden estar en cualquier parte de su %PATH%. %PATH%es una variable del sistema que contiene una lista de rutas para buscar programas que se pueden ejecutar. Básicamente es solo una lista de carpetas.

Cuando ejecuta ping X.X.X.X, comienza a buscarlos hasta que encuentra una carpeta con un archivo llamado ping.exee intenta ejecutarlo X.X.X.Xcomo primer parámetro. (Sugerencia, creo que ping.exeestá en C:\Windows\System32, donde vive la mayoría de las utilidades que enumeró)

¿Por qué no enumera todos los programas posibles? Debido a que podría haber miles, y enumerarlos a todos podría llevar mucho, mucho tiempo (y el propósito de esto helpes enumerar los elementos integrados, para que sepa qué comandos proporciona el shell y deberían estar disponibles en cualquier sistema Windows y cuáles no están y podrían faltar o ser diferentes en un sistema Windows en particular).


Tras una investigación más profunda, parece haber algunos comandos enumerados en los helpque se encuentran comandos externos (como icacls). Solo puedo especular sobre por qué fueron elegidos para su inclusión, pero lo anterior sigue siendo una regla general para shells (ya sea para Windows, Linux u OS X), y 90% + de los comandos enumerados por help.

Darth Android
fuente