序言
在开发过程中有时候需要截屏来反应问题。截完屏以后。需要把文件发送到电脑。这个时候一般使用adb pull。但是截屏的文件名一般很长。我比较懒。写了一个脚本。可以输入一个数量自动把文件拉取到当前目录下的app_file目录下。
批处理
@echo off
:: 设置 UTF-8 编码以支持中文
chcp 65001 >nul
setlocal enabledelayedexpansion
:: 设置远程路径和本地保存路径
set "REMOTE_DIR=/sdcard/Pictures/Screenshots"
set "LOCAL_DIR=apk_file"
:: 创建本地目录(如果不存在)
if not exist "%LOCAL_DIR%" mkdir "%LOCAL_DIR%"
:: 检查设备是否连接成功
adb devices | findstr /r /c:"\<device\>" >nul
if errorlevel 1 (
echo ❌ 未检测到已连接的设备,请确认 USB 调试已开启并正确连接设备。
pause
exit /b
)
:: 获取用户输入
set /p count="请输入你要拉取的截图数量:"
echo 正在拉取最近的 %count% 个截图...
:: 获取远程文件列表,并按时间排序(最新在前)
set "num=0"
set "found=0"
for /f "tokens=*" %%F in ('adb shell "ls -t %REMOTE_DIR%" ^| findstr .') do (
set /a num+=1
if !num! leq %count% (
set "filename=%%F"
set "found=1"
echo 📄 正在拉取:!filename!
adb pull "%REMOTE_DIR%/!filename!" "%LOCAL_DIR%"
if exist "%LOCAL_DIR%\!filename!" (
echo ✅ 已保存到:.\%LOCAL_DIR%\!filename!
) else (
echo ❌ 拉取失败或文件为空:!filename!
)
) else (
goto :done
)
)
:done
if "!found!" == "0" (
echo ⚠️ 未在远程目录中找到任何文件:%REMOTE_DIR%
)
echo.
echo ✅ 操作完成!文件已保存至:.\%LOCAL_DIR%
pause