De la misma forma que se puede apagar una aplicación pasando un tiempo, no veo imposible el crear un código para que al pulsar la tecla que elijamos, el batch mande la orden de cerrar la aplicación...
Si, claro... eso es algo muy posible en cualquier lenguaje, pero en Batch lamentáblemente
NO, lo que quieres es capturar los eventos del teclado, y no puedes hacerlo de ninguna manera, es imposible.
Batch es procesamiento por lotes, como te han comentado no se pueden hacer 2 cosas al mismo tiempo... Primero se procesa "X", y luego "Y", no puedes procesar "Y" a la espera de "X".
A lo que
daniel.r.23 se refiere es al archivo
keyboard.dat de la aplicación
Keyboard.exe, que es un comando de Windows XP y anteriores, dicho comando fue excluido en win 7/8 (dudo que lo puedas usar en ese SO), pero para nada sirve para tu propósito, el comando keyboard.exe es un prompt (Como set /P) es decir, es un comando que pausa la ejecución del script (como ya dijimos no se pueden procesar 2 cosas a la vez en Batch) pero con la diferencia de que sólo permite pulsar una tecla, y al pulsarla devuelve el código de la letra, nada más.
La única solución es recurrir a otro lenguaje como VBScript, o alguna aplicación CommandLine externa, por ejemplo para configurar un Hotkey del escritorio (O un hotkey global), y al teclear el hotkey, mandar la orden de cerrar el proceso de la CMD.
EDITO: ...O generar un exe en otro lenguaje que cumpla lo que pides, capturar la tecla "X" del keyboard y si se pulsa cerrar la instancia de tu CMD, yo la haría para que pudiera pasarle dos argumentos, un argumento para la tecla a capturar, y un segundo argumento para el título del script (el título de la ventana del CMD que se qquiere cerrar), para no cerrar todos los procesos "CMD.exe" de golpe. Es algo fácil hacerlo, de verdad.
Saludos!