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

如何编写Bat文件在ADB Shell中运行需接收输入的可执行程序

如何在批处理中通过ADB Shell为交互式程序传递输入

你遇到的问题是本地管道输入无法传递到ADB Shell内运行的程序,这是因为echo good_guy | adb shell Helloworld.exe会把输入传给本地的adb shell进程,而非设备端的Helloworld.exe。以下是几种可行的解决方法:

方法一:在设备端Shell内执行管道命令

直接让设备端的Shell处理输入管道,把整个命令组合传给adb shell:

adb shell "echo good_guy | Helloworld.exe"

如果程序需要多行输入(比如你的代码里预留了age输入),可以扩展为:

adb shell "(echo good_guy && echo 25) | Helloworld.exe"

这种方式会在设备端依次执行echo命令,将输出直接管道给目标程序,完美适配你的交互式需求。

方法二:通过输入文件重定向

如果输入内容复杂或较长,可以先把输入写入本地文件,推送到设备后重定向程序输入:

:: 生成本地输入文件
echo good_guy > input.txt
:: 推送到设备临时目录
adb push input.txt /data/local/tmp/
:: 在设备端重定向程序输入
adb shell "Helloworld.exe < /data/local/tmp/input.txt"
:: 清理临时文件
adb shell rm /data/local/tmp/input.txt
del input.txt

注意事项

  • 确保Helloworld.exe在设备的环境变量PATH中,或者使用完整路径(如/data/local/tmp/Helloworld.exe)
  • 部分设备默认Shell为sh,上述命令语法完全兼容,无需额外调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:42:43