![使用命令行批处理文件/RDP 同步 Caps Lock 切换 Caps Lock](https://linux22.com/image/1625423/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%2FRDP%20%E5%90%8C%E6%AD%A5%20Caps%20Lock%20%E5%88%87%E6%8D%A2%20Caps%20Lock.png)
当我使用 RDP 在家工作时,电子邮件自动更正不断使我的 Caps 锁定不同步,我一直在寻找在打开新电子邮件或 PDF 表单时重新同步和预设 Caps 锁定状态的方法。要打开 PDF 表单并打开 Caps 锁定并重新同步,我发现以下代码有效,如果 Caps 锁定已打开,则关闭 Caps 锁定,然后在打开 PDF 文件之前将其重新打开。但是我想简化这个过程以加快进程。有没有更好的方法来编写这个,也许将前两行合并到一行?
有什么建议吗?谢谢。
@echo off
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -eq 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')"
start "" /wait /D"C:\Users\Claire\Desktop" "pdf-form.pdf"
exit
答案1
/B 开关在这里没有实际好处,如果目的只是确保大写锁定处于打开状态,则只需要一行即可启用它,使用 ne 表示不等于真。
@start /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -ne 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"
@start "" /wait /D"C:\Users\Claire\Desktop" "pdf-form.pdf"
@exit /B 0