Il n’y a pas de bonne raison de faire cela. En fait, le seul véritable effet est de ralentir les choses.
Les gens pourraient penser qu’il y a une bonne raison de le faire. Utiliser CMD a les effets suivants qui peuvent être utiles dans certains cas :
-
Active les commandes internes, comme « DIR »
-
Définit les variables d’environnement, comme la variable PATH
Cependant, dans ce cas, aucun de ces avantages n’est obtenu. Examinons ces deux scénarios :
Donc, il peut y avoir, dans certains cas, des situations où utiliser « CMD /C » est utile. Par exemple, si j’utilise la commande externe PSEXEC (téléchargée depuis SysInternals), et que j’essaie d’exécuter « DIR » sur un ordinateur distant, alors Windows essaiera d’exécuter la commande « DIR ». Windows échouera car il n’existe pas de « DIR.EXE », « DIR.BAT », ou de fichier « DIR » se terminant par une autre extension supportée. (Les extensions supportées peuvent être consultées en exécutant « ECHO %PATHEXT% ».)
Cependant, dans ce scénario, si j’essaie d’exécuter « CMD /C DIR », alors cela fonctionnera, parce que Windows cherchera un exécutable nommé « CMD », le trouvera, et ensuite CMD exécutera avec succès la commande « DIR » qui est une partie interne de la commande « CMD ».
Dans ce cas, vous pouvez simplement exécuter powershell tout aussi facilement que « CMD /C powershell », donc vous ne tirez aucun avantage du « CMD /C » inutile. Le seul avantage que je vois à passer par l’étape supplémentaire de taper « CMD /C » est de fournir un exemple qui sera utile si quelqu’un décide de modifier un exemple pour exécuter une commande « DIR » ou « COPY ». Avoir un exemple plus flexible peut être utile pour certaines personnes. Ce n’est vraiment pas nécessaire quand on sait ce qu’on fait.
Quant au deuxième point que j’ai mentionné, à savoir la définition des variables d’environnement, c’est aussi quelque chose que vous ne faites pas activement dans ce cas particulier. Peut-être que certaines personnes pensent qu’elles améliorent les choses en faisant définir la variable d’environnement PATH. Cependant, lorsque vous exécutez des commandes directement (par exemple depuis l’option « Exécuter » du menu Démarrer), le système d’exploitation Windows peut chercher les commandes dans des emplacements supplémentaires. Par exemple, sous Windows XP et versions ultérieures, vous pouvez exécuter :
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
Si la commande que vous voulez exécuter est listée sous « App Paths », Windows peut trouver le programme même s’il n’est pas dans le PATH. Donc, Windows est susceptible de trouver encore PLUS que ce que CMD trouverait dans le PATH que CMD utilise.
Un avantage possible est si vous vouliez que CMD soit exécuté pour pouvoir référencer une variable d’environnement comme %USERPROFILE% ou %LOGONSERVER% ou %TEMP%/%TMP%, mais puisque vous ne faites pas cela, vous n’avez pas besoin d’exécuter « CMD /C ».
Donc, pour votre cas particulier : il n’y a pas de bonne raison de le faire. Les effets obtenus sont de faire travailler davantage votre ordinateur, de ralentir le processus et d’utiliser plus de mémoire (le tout en quantités négligeables sur les équipements modernes).