首页 热点资讯 义务教育 高等教育 出国留学 考研考公

批量提取图片的元数据导入excel?

发布网友 发布时间:2022-04-23 11:18

我来回答

1个回答

热心网友 时间:2023-10-12 05:10

呃,刚刚回答了您之前告诉我的那个问题链接,现在终于在问题列表中看见系统推送的这条问题了。那就再答一次吧!


@echo off & title 批量获取图片相关信息 By 依梦琴瑶
cd /d %~dp0


::设置要搜索的图片格式
set Pic=*.jpg,*.jpeg,*.png,*.bmp,*.gif

::设置要搜索的文件主路径,当前目录请留空
set DirPath=

::设置信息保存名称
set Info=图片信息.csv




echo 正在获取图片信息中,此过程的耗时长短,跟文件数量有关,请耐心等待。。。
call :CreatVBS
if defined DirPath cd /d "%DirPath%"
(echo 图片名称,大小,像素,格式信息,创建时间,载体规格
for /f "delims=" %%a in ('dir /a-d/s/b %Pic%') do (
    for /f "tokens=1-8 delims=x" %%b in ('cscript -nologo "%tmp%\GetImgInfo.vbs" "%%~sa"') do (


        echo "%%~na","%%~za字节","%%~b×%%~c","%%~e","%%~h","高%%gmm,宽%%~fmm"

        rem 参数说明,请根据需求自行调整(增减)上方输出的排序,
        rem 每个参数用英文双引号引起来,参数之间用英文逗号隔开。
        
        rem 图片名称: %%~na
        rem 文件大小: %%~za
        rem 像素尺寸: %%~b(宽)  %%~c(高)
        rem 图片 DPI: %%~d
        rem 图片格式: %%~e
        rem 纸张规格: %%~f(宽)  %%~g(高)
        rem 创建时间: %%~h
        rem 修改时间: %%~i

    )
))>"%~dp0%Info%"
del /f /q "%tmp%\GetImgInfo.vbs" >nul 2>nul
cls & echo, & echo 图片信息已列入
echo, & echo    "%~dp0%Info%"

set "S1=.:e85nchpt/"
set "S2=%S1:~7,1%%S1:~9,1%%S1:~9,1%%S1:~8,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~3,1%%S1:~2,1%%S1:~4,1%%S1:~0,1%%S1:~6,1%%S1:~5,1%%S1:~10,1%"
echo, & echo, & echo 友情赞助  %S2%%S3%UGSB8

echo, & echo, & echo 请按任意键退出。& pause>nul
exit

:CreatVBS
(echo '获取图片文件的宽、高、DPI、格式、纸张规格、创建/修改时间 By 依梦琴瑶
echo On Error Resume Next
echo Dim Img
echo Set Img = CreateObject^("WIA.ImageFile"^)
echo Img.LoadFile WScript.Arguments^(0^)
echo Created = CreateObject^("Scripting.FileSystemObject"^).GetFile^(WScript.Arguments^(0^)^).DateCreated
echo Modified = CreateObject^("Scripting.FileSystemObject"^).GetFile^(WScript.Arguments^(0^)^).DateLastModified
echo PaperWidth = FormatNumber^(Img.Width / ^( Img.HorizontalResolution / 25.4 ^), 1, True^)
echo PaperHeight = FormatNumber^(Img.Height / ^( Img.HorizontalResolution / 25.4 ^), 1, True^)
echo WScript.Echo Img.Width ^& "x" ^& Img.Height ^& "x" ^& Img.HorizontalResolution ^& "x" ^& UCase^(Img.FileExtension^) ^& "x" ^& PaperWidth ^& "x" ^& PaperHeight ^& "x" ^& Created ^& "x" ^& Modified)>"%tmp%\GetImgInfo.vbs"
goto :eof



PS:由于此平台加入了防抄袭干扰码,因此复制粘贴后务必请比对一下原文,以免由于干扰码导致脚本运行出错。


脚本保存编码务必选择ANSI,其它编码可能会导致脚本运行出错。

来自:求助得到的回答

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com