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

如何在Windows的.bat文件中运行指定的adb shell su命令?

解决批处理文件中ADB SU命令失效的问题

看起来你遇到的核心问题是Windows批处理(.bat)的语法解析规则和直接在CMD中执行命令的差异,加上可能的输入错误(那个-褋明显是乱码),导致命令无法正确传递到Android的shell环境中。下面给你一步步解决:

首先纠正关键错误

你写的su -褋是乱码,正确的参数应该是su -c——这个参数用来告诉su“执行后面跟的命令”,是Android su命令的标准用法。

批处理中的正确写法

在批处理文件中,CMD会优先解析特殊字符(比如>、引号),所以我们需要正确转义这些内容,确保命令原封不动传递到Android的shell里。推荐两种可行的写法:

写法1(更简洁,利用Android Shell的单引号)

adb shell "su -c 'echo AT+EGMR=1,7,\"558378919678440\" > /dev/radio/pttycmd1'"
  • 外层用双引号把整个Android shell命令传给adb shell,避免CMD解析内部的特殊字符
  • Android shell中用单引号包裹echo的内容,里面的双引号用\转义(这是Linux/Android shell的转义规则)
  • >会被正确传递到Android shell,实现向/dev/radio/pttycmd1写入内容

写法2(严格遵循CMD批处理的引号转义规则)

adb shell "su -c ""echo 'AT+EGMR=1,7,""558378919678440""' > /dev/radio/pttycmd1"""
  • 在CMD批处理中,要在双引号内部使用双引号,需要写成两个连续的双引号""
  • 这种写法完全按照CMD的规则转义,确保命令被正确解析

为什么之前的写法失败?

  1. 乱码的su参数:-褋不是有效的su参数,导致su无法识别要执行的命令
  2. 引号嵌套错误:批处理中没有正确转义引号,导致CMD提前截断命令,无法完整传递到Android shell
  3. 重定向符被解析:你之前的写法中,>被CMD当成了批处理的输出重定向,而不是传递给Android shell执行

额外注意事项

  • 确保你的设备已经获取root权限,并且su命令可以正常执行(手动在CMD里能运行原命令,这一点应该没问题)
  • 如果还是失败,可以尝试在命令前加上@echo off,避免批处理输出多余内容干扰调试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:04:47