¿Se puede usar la función SendKeys en conjunto con un Batch?
No por si solo, pero siempre puedes ejecutar un script VBS (donde usarás la función SendKeys) desde tu batch-script.
Si la intención es enviar la pulsación a la ventana de la CMD, aquí tienes un ejemplo (con dos segundos de retraso que puedes disminuir a cero):
Echo:Se enviará una pulsación
del teclado para elegir la opción [1]...
(
Echo:
Set WshShell = WScript.CreateObject
^("WScript.Shell"
^) Echo:WScript.Sleep
^(2000
^) Echo:WshShell.SendKeys
^("1"
^) )>"%TEMP%\sendkeys.vbs"
START /B "" "cscript.exe" /NoLogo "%TEMP%\sendkeys.vbs"
Choice /C "123" /M "Opciones: "
De todas formas no se para que quieres hacer algo así, pero ten en cuenta que la función sendkeys envía una pulsación a la ventana activa (la ventana que tenga el foco de entrada activo), y esta no tiene por que siempre ser necesariamente la ventana de la CMD donde corres tu script, así que dependiendo de lo que quieras hacer, primero tienes que asegurarte de activar la ventana a la que quieres enviar la pulsación, o de lo contrario utilizar un lenguaje diferente y más sofisticado que VBS para poder llamar a la función SendMessage/PostMessage de la API de Windows, la cual permite enviar una pulsación de teclado a una ventana en segundo plano/cualquier ventana.
Saludos