Sous DOS (et ses descendants comme COMMAND.COM et cmd.exe), les commandes sont classées comme internes ou externes :
Commandes internes :
* Résidence : Ces commandes sont intégrées directement dans l'interpréteur de commandes (par exemple, `cmd.exe`). Ils résident en mémoire pendant l'exécution de l'interpréteur de commandes.
* Exécution : Ils sont exécutés directement par l'interpréteur sans qu'il soit nécessaire de charger un programme séparé à partir du disque. Cela les rend beaucoup plus rapides.
* Exemples : Les commandes internes courantes incluent `dir`, `copy`, `del`, `mkdir`, `rmdir`, `cd`, `cls`, `help`, `exit`, `type`, `date`, `time`.
Commandes externes :
* Résidence : Ces commandes sont des programmes exécutables distincts (fichiers `.exe`, `.com`, `.bat` ou `.cmd`) stockés sur votre disque dur.
* Exécution : L'interpréteur de commandes charge et exécute ces programmes à partir du disque lorsque vous tapez leur nom. C'est plus lent que l'exécution de commandes internes.
* Exemples : `format`, `chkdsk`, `ping`, `ipconfig`, `tracert`, `netstat`. La plupart des commandes qui interagissent avec le matériel système ou le réseau entrent dans cette catégorie. Même certaines commandes apparemment simples peuvent être externes, selon votre version ou configuration DOS.
Résumé des principales différences :
| Fonctionnalité | Commandes internes | Commandes externes |
|----------------|--------------------------------------|---------------------------------------|
| Localisation | Une partie de l'interpréteur de commandes | Séparer les fichiers exécutables sur le disque |
| Chargement | Déjà chargé en mémoire | Chargé depuis le disque lors de l'exécution |
| Vitesse | Exécution plus rapide | Exécution plus lente |
| Disponibilité | Toujours disponible pendant que l'interprète fonctionne | Disponible uniquement si le fichier existe |
Comment faire la différence :
Bien qu'il n'existe pas de commande unique permettant de catégoriser définitivement une commande comme interne ou externe, vous pouvez essayer ceci :
1. Essayez de l'exécuter : Si la commande fonctionne, elle est soit interne, soit externe (la distinction cruciale est la vitesse). Les commandes internes s'exécuteront sensiblement plus rapidement.
2. Vérifiez la commande `where` (si disponible ; versions plus récentes de CMD) : La commande « où » (disponible dans les invites de commande Windows les plus récentes) affichera l'emplacement d'un exécutable. Si `where commandName` renvoie un chemin vers un fichier, il est externe. S'il est indiqué "WHERE n'est pas reconnu..." et que la commande est une commande interne valide, alors elle est interne. Si cela n’existe pas, c’est juste une vieille erreur.
En bref, les commandes internes sont des utilitaires intégrés essentiels, tandis que les commandes externes fournissent des fonctionnalités étendues, nécessitant souvent plus de ressources.
|