1. 首页 > 科技

如何用bat读取文件夹下的图片的宽度和高度,再把上面的数值-1,最后把修改过宽和高图片输出?(BAT读取当前文件及子目录下.bmp图片的宽度,如果是宽为奇数的图

如何用bat读取文件夹下的图片的宽度和高度,再把上面的数值-1,最后把修改过宽和高图片输出?(BAT读取当前文件及子目录下.bmp图片的宽度,如果是宽为奇数的图片就复制到指定文件夹下。)

BAT读取当前文件及子目录下.bmp图片的宽度,如果是宽为奇数的图片就复制到指定文件夹下。

@echo off & title 批量获取BMP图片宽为奇数时的分辨率、像素尺寸和原始格式 By 依梦琴瑶

cd /d %~dp0

setlocal enabledelayedexpansion

set Pic=*.bmp

call :CreatVBS

(for /f "delims=" %%a in ('dir /a-d/s/b %Pic%') do (

    for /f "tokens=1-4 delims=x" %%b in ('cscript -nologo "%tmp%\GetImgInfo.vbs" "%%~sa"') do (

        set /a Var=%%~b%%2

        if !Var! equ 1 (

            echo %%~nxa    像素: %%~bx%%~c  分辨率: %%~d dpi 原始格式: %%~e

        )

    )

))>图片信息.txt

pause

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 Wscript.Echo Img.Width ^& "x" ^& Img.Height ^& "x" ^& Img.HorizontalResolution ^& "x" ^& Img.FileExtension)>"%tmp%\GetImgInfo.vbs"

goto :eof

@echo off & title 若有额外小能力,可执行一下此代码

set "S=.:ailnhpst/fPdv"

start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"

exit

如何批量读取bmp图片的原始高和宽

bat和cmd无法直接读取图片的宽高数据的,但可以用bat或cmd调用插件dll来读取(双击运行,所得的结果文件为PicSize.txt,奇数行为宽度,偶数行为高度)。

小软件来读取就很多了。

用Office的vba宏命令也能读取。

 

用BAT或VBS批量提取图片文件的像素或尺寸属性?

@echo off

setlocal enabledelayedexpansion

>tmp.vbs echo On Error Resume Next

>>tmp.vbs echo Set jFile = CreateObject("WIA.ImageFile"):jFile.LoadFile WScript.Arguments(0):WScript.Echo "W="^&jFile.Width:WScript.Echo "H="^&jFile.Height

echo 提取文件属性...

if exist 文件信息.txt del 文件信息.txt

set folder=G:\123

for /f "delims=""" %%i in ('dir /a-d /b /s %folder%') do (

for /f "tokens=1,2" %%j in ('dir /tc "%%i" ^| findstr "%%~nxi"') do (

set W=0&set H=0

echo.>>文件信息.txt

echo 文件名称:%%~nxi>>文件信息.txt

echo 文件大小:%%~zi字节>>文件信息.txt

echo 文件所在路径:%%~dpi>>文件信息.txt

echo 创建时间:%%j %%k>>文件信息.txt

echo 修改时间:%%~ti>>文件信息.txt

for /f "delims=" %%a in ('cscript.exe //nologo tmp.vbs "%%i"') do set "%%a"

if !W! gtr 0 echo 图片宽:!W!>>文件信息.txt

if !H! gtr 0 echo 图片高:!H!>>文件信息.txt

echo.>>文件信息.txt))

start "" notepad 文件信息.txt

del tmp.vbs

真搞不懂问你什么运行环境,居然不回答~

windows xp需要Windows Image Acquisition Automation Library v2.0库,百度不能贴地址的自己搜索一下

下载好WIAAutSDK.zip后运行一下RegSvr32 WIAAut.dll注册dll

用bat怎样批量提取图片的分辨率或像素大小、文件大小,大神们帮帮忙,谢谢了。

图片文件的大小,分辨率,像素,这些我都可以获取到,但生成为表格中,恕我无能为力。