Es util porque lo puedes implementar a otros lenguajes.
Eso es cierto, pero a la vez es una tontería engañosa,
Un lenguaje tiene sus propios métodos y funciones para hacer todo lo que haces con Batch, un lenguaje de scripting/programación no depende de Batch, ¿Entonces porque usarlo?, ¿Porque debe ser útil?.
Una cosa es usar un lenguaje dentro de otro lenguaje porque séa totálmente necesario o porque no véas otra salida (Por ejemplo javascript dentro de un HTML, o un VBS dentro de un Bat), y otra cosa muy distinta es tener la mala costumbre de usar Batch porque pienses que es más útil usar Batch que los métodos del propio lenguaje (Por ejemplo usar Batch en VisualBasic o en C...).
Por ponerte un ejemplo, en el HTA usas VBS porque es totálmente necesario usarlo, no te da otra opción por si misma (Podrías usar JS en vez de VBS, pero en fin, te obliga a usarlo), pues eso mismo te pasará con Batch, llegará un momento en que necesitarás hacer algo diferente y te darás cuenta que Batch no dispone de recursos nativos para hacer eso, y tendrás sólamente dos opciones:
1. Buscar un software commandline de terceros que haga la taréa que necesitas en Batch.
2. Hacer caso de nuestros consejos y aprender CUALQUIER otro lenguaje, porque seguramente tendrá métodos nativos para realizar esa taréa, Batch se queda muy corto cuando lo conoces.
Saludos.