做一些命令取决于图片的宽度和高度

时间:2014-02-13 17:01:41

标签: windows batch-file

下面的代码将提取根目录中图片的宽度和高度。

@ECHO OFF &SETLOCAL
(for /r %%a in (*.jpg) do (
    for /f "tokens=1*delims=:" %%b in ('"MEDIAINFO --INFORM=Image;%%Width%%:%%Height%% "%%~a""') do (
        echo(%%b %%~c)
))
pause

MediaInfo CLI version

%% b和%% ~c将存储宽度和高度,正如您在代码中看到的那样,没有%% ~c变量,但它仍然有效。我想做以下命令:

after getting width and height with above code
if width>height
   w=width-100
   resize picture /width=w
else 
   h=height-100
   resize picture /height=h

我将使用cmd实用程序进行大小调整,但问题是将%% b和%% ~c分配给两个变量并将它们相互比较。

1 个答案:

答案 0 :(得分:2)

试试这个:

@ECHO OFF 
SETLOCAL enabledelayedexpansion
set "MI=U:\scripts\utilities\Mediainfo\Mediainfo.exe"
for /r %%a in (*.jpg) do (
    for /f "tokens=1,2 delims=:" %%b in ('"%MI% --INFORM=Image;%%Width%%:%%Height%% "%%~a""') do (
        echo(%%b %%c
        if %%b GTR %%c (
          set /a w=%%b-100
          Echo resize picture /width=!w!
        ) ELSE (
          set /a h=%%c-100
          Echo  resize picture /height=!h!
        )         
    )
)

pause