¿Por qué el uso de "cmd" en .bat se resuelve correctamente?

¿Por qué el uso de "cmd" en .bat se resuelve correctamente?

Mientras buscaba el método correcto para ejecutar un script .bat y hacer que la cmdventana permaneciera activa al finalizar, aprendí que uno de los dos métodos populares es incluir cmd /k file.baten el script, donde "file.bat" se refiere a sí mismo.

Si bien entiendo el resultado funcional de lo anterior, lo que parece que no puedo entender es cómo, conceptualmente, se ejecuta y resuelve correctamente.

Por mi propia inferencia no educada, creo que tiene algo que ver con el /kargumento, cuya función se explica como:

Lleva a cabo el comando especificado por la cadena pero permanece

Aún así, incluso si permite que el script evite el bucle, ¿cómo no interrumpe su propia ejecución?

Disculpas si esto es muy obvio o si no entiendo algo fundamental, no tengo educación ni capacitación formal sobre el tema.

EDITAR:

Bueno, ¡eso fue una tontería de mi parte! vi en la respuestaaquíque la sintaxis estaba organizada de la manera que indiqué anteriormente... lo cualhacerepetir el guión, por lo que debería haberlo probado por mí mismo primero antes de creer ciegamente sin el contexto adecuado (y siempre digo "confía pero verifica", también, qué hipócrita).

Respuesta1

En cuanto a por qué cmdse resuelve, hay un par de buenas explicaciones más adelante.Desbordamiento de pila- esencialmente cmdse interpreta como %ComSpec%, que es la variable de entorno de su sistema para la ubicación completa de cmd.exe (generalmente C:\Windows\System32\cmd.exe).

En cuanto al contexto de su pregunta, si tiene cmd /k yourbatfile.batdentro yourbatfile.bat, simplemente se repetirá. Si desea que su ventana permanezca abierta por razones de solución de problemas, le recomiendo simplemente colocar un pauseal final o después de cualquier sección con la que tenga problemas.

La redacción para /kesun poco diferente aquíya que dice que "vuelve al símbolo del sistema"; esencialmente, agregar /kes como abrir cmd.exe y usarlo, mientras que no /kes como ejecutar un comando desde una ventana Ejecutar.

Puede probar esto abriendo Ejecutar y ejecutando ipconfig /all; su ventana se cerrará inmediatamente después de ipconfigfinalizar; pero si abre Ejecutar y ejecuta cmd /k ipconfig /all, su ventana lo regresará al símbolo del sistema.

información relacionada