A única maneira que eu sei do cmd.exe é gerando o powershell ou o vbs.
Solte isso no final do seu lote, ele alterna CAPSLOCK
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')"
Isso chama o powershell via linha de comando e invoca as sendkeys, o método alternativo é ecoar comandos semelhantes em um arquivo% temp% e, em seguida, wscript %temp%\my.vbs
.
EDIT: Aqui está a instrução IF para garantir que ela apenas desligue o capslock
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -eq 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"