You can call a one-line PowerShell command from within your batch file to toggle or force a specific state.
To force a key to be "ON" only if it is currently "OFF," use PowerShell to check the status first. Batch File Caps Lock Num Lock
powershell.exe -Command "$wsh = New-Object -ComObject WScript.Shell; $wsh.SendKeys('{NUMLOCK}')" Ensuring a Specific State (IF Logic) You can call a one-line PowerShell command from
powershell.exe -Command "IF ([console]::CapsLock -eq 'False') { ... }" Super User Batch File Caps Lock Num Lock
Windows Batch (.bat) files cannot natively control or check the status of or Num Lock because the CMD language lacks built-in commands for hardware state . To achieve this, a batch file must "spawn" a script using PowerShell or VBScript . Toggling via PowerShell (Recommended)