拉取手机图片的脚本

背景

开发过程中有时候需要拉取手机中的图片。于是写了这个脚本

功能

可以扫描DCIM和Pictures下面的所有图片。按照时间排序,最新的在最前面。显示最新的10张。然后你可以输入编号。拉取对应的图片到桌面。

脚本

c 复制代码
@echo off
setlocal enabledelayedexpansion

:: 1. 保存到桌面(本机桌面在 E 盘)
set "desktop_path=E:\Desktop"

:: 2. 若桌面文件夹不存在则创建(极少见)
if not exist "%desktop_path%" (
    echo 正在创建目录: %desktop_path%
    md "%desktop_path%"
)

echo.
echo [正在连接设备并查找图片...]
echo 保存位置: %desktop_path%
echo.

:: 3. 临时列表放到 %%TEMP%%,避免与当前目录下被占用的文件冲突
set "RAW=%TEMP%\adb_pic_raw_%RANDOM%.txt"
set "PIC=%TEMP%\adb_pic_top_%RANDOM%.txt"

adb shell "find /sdcard/DCIM /sdcard/Pictures -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' -o -name '*.heic'" > "%RAW%"

if not exist "%RAW%" (
    echo 错误:未能从手机获取图片列表。请检查USB连接和ADB授权。
    pause
    exit /b 1
)

echo 正在筛选最近 10 张图片...
set count=0
(
    for /f "delims=" %%i in ('type "%RAW%" ^| sort /r') do (
        set /a count+=1
        if !count! leq 10 echo %%i
    )
) > "%PIC%"

for %%a in ("%PIC%") do set "file_size=%%~za"
if "!file_size!"=="0" (
    echo 未找到任何图片。请确认手机里有照片。
    del /f /q "%RAW%" "%PIC%" 2>nul
    pause
    exit /b 1
)

echo 找到以下最近的 10 张图片:
echo.

set count=1
for /f "usebackq delims=" %%i in ("%PIC%") do (
    echo [!count!] %%i
    set /a count+=1
)

set "max_choice=!count!"
set /a max_choice-=1

echo.
echo ----------------------------------------
set /p "choice=请输入要拉取图片的编号 (1-!max_choice!),然后按回车: "

if "!choice!"=="" (
    echo 未输入任何内容,操作已取消。
    del /f /q "%RAW%" "%PIC%" 2>nul
    pause
    exit /b 1
)

echo !choice!| findstr /r "^[1-9][0-9]*$" >nul
if errorlevel 1 (
    echo 输入无效,请输入正整数编号。
    del /f /q "%RAW%" "%PIC%" 2>nul
    pause
    exit /b 1
)

if !choice! lss 1 (
    echo 输入无效,编号必须大于0。
    del /f /q "%RAW%" "%PIC%" 2>nul
    pause
    exit /b 1
)

if !choice! gtr !max_choice! (
    echo 输入无效,编号超出范围(1-!max_choice!)。
    del /f /q "%RAW%" "%PIC%" 2>nul
    pause
    exit /b 1
)

set "target_line=!choice!"
set current_line=0
set "target_file_path="

for /f "usebackq delims=" %%i in ("%PIC%") do (
    set /a current_line+=1
    if !current_line! equ !target_line! set "target_file_path=%%i"
)

echo.
echo 正在从手机拉取文件...
echo 源文件: !target_file_path!
echo 目标路径: %desktop_path%
echo.

:: 【核心】勿使用 "%desktop_path%\",末尾 \ 会转义结束引号导致路径错误
adb pull "!target_file_path!" "%desktop_path%"

if !errorlevel! equ 0 (
    echo.
    echo 成功!文件已保存到上述目录。
) else (
    echo.
    echo 拉取文件时出错。请检查文件路径和手机权限。
)

del /f /q "%RAW%" "%PIC%" 2>nul
pause
endlocal

效果

相关推荐
wanhengidc44 分钟前
显卡服务器都有哪些功能
运维·服务器·人工智能·科技·智能手机·云计算
2601_954706495 小时前
2026 云手机横评:傲晨云 VS 红手指 VS 雷电云,稳定性 / 性能 / 适配深度测评
大数据·智能手机
2601_954706495 小时前
2026 云手机深度测评:傲晨、六边云、蜂窝云谁更适合长期挂机与多开运营?
智能手机
RoboWizard5 小时前
DIY移动硬盘?2230能否堪大任!
数据库·人工智能·智能手机·性能优化·负载均衡
一路向北he5 小时前
如何获取手机唤醒AI的提示音
智能手机
wanhengidc5 小时前
云手机与正常手机的区别
大数据·运维·服务器·人工智能·智能手机
号码认证服务21 小时前
如何让经销商接电话时看到“XX集团”?申请号码认证统一上线
服务器·经验分享·sql·华为·智能手机·华为云·云计算
2601_956002811 天前
冬日狂想曲(赠去马赛克补丁)2026.5.13最新版免费下载 转存后自动更新 (看到请立即转存 资源随时失效)pc手机版通用
智能手机·游戏引擎·电脑·游戏程序·动画·游戏美术
草木深雨纷纷1 天前
我的世界基岩版手机版(光影材质包大全)下载国际服集合下载分享
游戏·智能手机·游戏程序·材质
号码认证服务1 天前
给用户打电话,怎么在对方手机显示为“XX证券”?号码认证办理步骤
android·运维·服务器·ios·智能手机·iphone·webview