You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理文件内容被识别为Alt代码?adb长按命令执行异常求助

解决批处理执行adb长按电源键命令乱码的问题

这个问题我之前碰到过,大概率是批处理文件的编码格式导致的乱码问题——当你把命令保存成批处理时,错误的编码让--longpress参数被解析成了乱码字符,系统识别不到长按指令,所以只触发了短按操作。下面给你几个可行的解决办法:

1. 修正批处理文件的编码格式

CMD默认使用ANSI编码解析批处理脚本,如果你的批处理是用UTF-8(带BOM)保存的,开头的隐藏BOM字符会破坏参数的正常解析。操作步骤:

  • 右键你的批处理文件,选择「用记事本打开」
  • 点击顶部菜单的「文件」→「另存为」
  • 在「编码」下拉框里选择「ANSI」,然后覆盖保存原文件
  • 重新运行批处理,应该就能正常识别--longpress参数了

2. 改用短参数替代长参数

adb的input keyevent命令支持短选项,长按可以用-l代替--longpress,这样能彻底避开长参数的编码问题。修改后的命令如下:

adb -s <ipaddress>:5555 shell input keyevent -l 26

把这个命令保存成批处理,不管编码是ANSI还是UTF-8(不带BOM),基本都能正常执行。

3. 临时切换CMD编码(备选方案)

如果上面两种方法都不行,可以在批处理的开头加一行命令,强制CMD切换到UTF-8编码:

chcp 65001
adb -s <ipaddress>:5555 shell input keyevent --longpress 26

不过这个方法在部分老版本Windows上可能有兼容性问题,优先推荐前两种方案。

为什么CMD直接执行没问题?

因为你在CMD里直接输入命令时,字符是按照当前CMD的默认编码(一般是GBK/ANSI)直接传递给adb的,没有额外的编码干扰;但批处理如果编码不对,会把隐藏的编码标记当成命令的一部分,导致参数乱码。

内容的提问来源于stack exchange,提问作者alwaysthestudent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:00:50