使用批处理自动拉取截屏图片

144 阅读1分钟

序言

在开发过程中有时候需要截屏来反应问题。截完屏以后。需要把文件发送到电脑。这个时候一般使用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

效果

在这里插入图片描述