En cmd de Windows, ¿cómo solicito la entrada del usuario y uso el resultado en otro comando?

Tengo un archivo .bat de Windows que me gustaría aceptar la entrada del usuario y luego usar los resultados de esa entrada como parte de la llamada a comandos adicionales.

Por ejemplo, me gustaría aceptar una ID de proceso del usuario y luego ejecutar jstack contra esa ID, colocando los resultados de la llamada jstack en un archivo. Sin embargo, cuando intento esto, no funciona.

Aquí está el contenido de mi archivo de muestra:

@echo off
set /p id=Enter ID: 
echo %id%
jstack > jstack.txt

y esto es lo que aparece en jstack.txt:

Enter ID: Terminate batch job (Y/N)?