2014-02-13 2 views
1

아래 코드는 루트 디렉토리에 그림의 너비와 높이를 추출합니다.일부 명령을 수행하십시오. 그림의 너비와 높이에 따라 달라집니다.

@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에 두 개의 변수를 할당하고 서로와 비교한다 : 나는 아래 명령을 수행합니다.

답변

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 
오류 "피연산자 없음", %% B와 %%에 뭔가 문제가 줄 것이다
+0

가 ~ 다, 그것은 다음 변수 I에 할당 비교할 수없는 것 왜 그런지 모르겠다 : ( – Nofuzy

+1

좋아, 나는 그것을 완벽하게 테스트했고 나에게 효과적이다. –

+0

좋은 일 Matt, 편집자와 함께, 이제는 매력처럼 작동하고있다;) – Nofuzy

관련 문제