No hay una buena razón para hacer esto. De hecho, el único efecto real que ocurre es ralentizar las cosas.
La gente podría pensar que hay una buena razón para hacer esto. El uso de CMD tiene los siguientes efectos que comúnmente pueden ser buenos en algunos casos:
- Habilita comandos internos, como "
DIR
"
- Establece variables de entorno, como la variable PATH
Sin embargo, en este caso, ninguno de esos beneficios se obtiene. Echemos un vistazo a estos dos escenarios:
Por lo tanto, puede haber, en algunos casos, un momento en que usar " CMD /C
" sea útil. Por ejemplo, si uso el comando externo PSEXEC
(descargado de SysInternals) e intento ejecutar " DIR
" en una computadora remota, Windows intentará ejecutar el DIR
comando " ". Windows no podrá ejecutar ese comando ya que no hay un archivo " DIR.EXE
", " DIR.BAT
" o " DIR
" que termine con otra extensión compatible. (Las extensiones compatibles se pueden ver ejecutando " ECHO %PATHEXT%
".)
Sin embargo, en este escenario, si intento ejecutar " CMD /C DIR
", eso funcionará, porque Windows buscará un ejecutable llamado " CMD
", y lo encontrará, y luego CMD
terminará ejecutando con éxito el DIR
comando " " que es un comando interno parte del CMD
comando " ".
En este caso, puede ejecutarlo powershell
tan fácilmente como " CMD /C powershell
", por lo que no obtendrá ningún beneficio de lo innecesario " CMD /C
". El único beneficio que estoy viendo al pasar por el paso adicional de escribir " CMD /C
" es proporcionar un ejemplo que será útil si alguien decide intentar modificar un ejemplo para ejecutar una línea de comando " DIR
" o " COPY
". Tener un ejemplo más flexible puede ser útil para algunas personas. Realmente no es necesario cuando las personas saben lo que están haciendo.
En cuanto al segundo punto que proporcioné, que es establecer variables de entorno, eso también es algo que no está haciendo activamente en este caso particular. Tal vez algunas personas piensan que están ayudando al hacer que se establezca la variable de entorno PATH. Sin embargo, cuando ejecuta comandos directamente (por ejemplo, desde la opción de menú "Ejecutar" del menú Inicio), el sistema operativo Windows puede buscar comandos en algunos lugares adicionales. Por ejemplo, en Windows XP / más reciente puede ejecutar:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
Si el comando que desea ejecutar aparece en "Rutas de aplicación", Windows puede encontrar el programa incluso si no está en la ruta. Por lo tanto, es probable que Windows encuentre incluso MÁS que solo lo que CMD encontraría en la RUTA que utiliza CMD.
Un beneficio posible es si desea que se ejecute CMD para que pueda referirse a una variable de entorno como% USERPROFILE% o% LOGONSERVER% o% TEMP% /% TMP%, pero como no está haciendo eso, no está necesitando correr " CMD /C
".
Entonces, para su caso particular: no hay una buena razón para hacerlo. Los efectos que está logrando son que su computadora haga más trabajo, ralentice el proceso y use más memoria (todo lo que está haciendo con cantidades insignificantes en los equipos modernos).
cmd /c
...cmd /k
es bastante diferente, ya que deja la ventana abierta después de que se completa el comando. Presumiblemente, el autor de la pregunta lo hizo de esa manera para que pudieran ver la salida con fines de depuración.