使用批处理自动拉取截屏图片
序言
在开发过程中有时候需要截屏来反应问题。截完屏以后。需要把文件发送到电脑。这个时候一般使用adb pull。但是截屏的文件名一般很长。我比较懒。写了一个脚本。可以输入一个数量自动把文件拉取到当前目录下的app_file目录下。
批处理
@echo off
:: 设置 UTF-8 编码以支持中文
chcp 65001 >nulsetlocal 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 调试已开启并正确连接设备。pauseexit /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+=1if !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