如何在Windows批处理中自动在索尼设备SD卡创建版本记录Txt文件
问题:将创建版本记录Txt的操作集成到安卓配置批处理中
我正在实现向安卓手机自动创建并写入Txt文件的功能。现有Windows批处理可自动配置索尼设备,运行正常,但需要在设备SD卡中创建一个Txt文件,记录脚本版本及设备配置日期。
当前操作流程:设备开启开发者模式、USB调试后,双击批处理即可执行,部分操作命令如下:
shell input tap 0358 1108 #all apps shell input tap 0610 0802 #settings shell input tap 0343 0427 #wifi shell input tap 0674 0101 #3 dots shell input tap 0437 0290 #advanced shell input tap 0630 0252 #network notification off shell input keyevent 4 #back shell input keyevent 4 #exit shell input tap 0350 0552 #bluetooth shell input tap 0635 0212 #on shell input keyevent 4 #exit shell input tap 0357 0871 #more shell input tap 0340 0410 #android beam shell input tap 0648 0198 #off .........
已通过手动CMD执行以下命令成功在SD卡生成目标文件:
adb shell shell@F3311:/ $ echo "#Sony_Script #Version 1.0 #08/11/2022" > /sdcard/Android/data/ScriptVersion.txt
现有批处理文件内容如下:
setlocal ENABLEDELAYEDEXPANSION @echo off REM adb command to grab all connected devices adb devices > adb.txt findstr /v "List of devices attached" adb.txt > clean.txt for /f "tokens=*" %%a in (Version.txt) do ( for /f "tokens=1" %%b in (clean.txt) do ( echo adb -s %%b %%a start adb -s %%b %%a ) TIMEOUT /T 4 )
解决方案
要把创建版本记录文件的操作集成到批处理中,无需进入交互式adb shell,直接构造单行adb命令即可实现,具体步骤如下:
1. 构造单行写入命令
将echo和重定向命令作为参数传给adb shell,写成一行命令,同时用系统变量自动获取当前日期:
adb -s %%b shell "echo '#Sony_Script\t#Version 1.0\n\n\t#%date%' > /sdcard/Android/data/ScriptVersion.txt"
%date%:自动获取当前系统日期,替代手动输入的固定日期\t:对应制表符,\n:对应换行符,保证文件格式和手动执行的一致
2. 集成到现有批处理
可以在配置命令执行完成后,单独添加一个循环为所有连接设备创建记录文件,修改后的完整批处理如下:
setlocal ENABLEDELAYEDEXPANSION @echo off REM 获取所有连接的设备列表 adb devices > adb.txt findstr /v "List of devices attached" adb.txt > clean.txt REM 执行设备配置命令 for /f "tokens=*" %%a in (Version.txt) do ( for /f "tokens=1" %%b in (clean.txt) do ( echo 执行配置命令:adb -s %%b %%a start adb -s %%b %%a ) TIMEOUT /T 4 ) REM 为每个设备创建版本记录文件 for /f "tokens=1" %%b in (clean.txt) do ( echo 为设备 %%b 创建版本记录文件 adb -s %%b shell "echo '#Sony_Script\t#Version 1.0\n\n\t#%date%' > /sdcard/Android/data/ScriptVersion.txt" REM 可选:验证文件内容(可注释掉) echo 验证文件内容: adb -s %%b shell "cat /sdcard/Android/data/ScriptVersion.txt" ) REM 清理临时文件 del adb.txt clean.txt
3. 注意事项
- 权限问题:如果设备提示无法写入
/sdcard/Android/data/目录,可将路径改为/sdcard/Download/ScriptVersion.txt这类权限更开放的目录 - 日期格式自定义:若
%date%的默认格式不符合需求,可通过for /f命令解析日期组件重新拼接(比如提取年/月/日重新组合为YYYY-MM-DD格式) - 避免用start命令:写入文件是一次性命令,直接执行即可保证命令完成,无需用
start后台启动
内容的提问来源于stack exchange,提问作者sakii
相关产品推荐
相关产品推荐

