2010-01-18 2 views
2

, 그들은 모두 숫자로 번호가 매겨집니다 image02, ..., image010, image011, ..., image0100, image0101배치 파일 : image00 image01을 : 다음과 같이 alphbetical의 파일을 처리 (수치 어쩌면>) 나는 현재 윈도우에서 배치 파일을 사용 ImageMagick를 와 파일들을 처리하기 위해 노력하고 주문

등등,하지만 난 그것을 image00 불구하고 실행하고자하는 파일을 처리 할 때, image01, image010, image0100, image0101, image0 102 등. 내가-를 해결하려면이 있지만 것을 의미 당분간,


SETLOCAL EnableDelayedExpansion
SET COUNT=0
FOR %%a in (*.bmp) DO
(
IF !ERRORLEVEL!==0
(
SET TFILE=0!COUNT!
SET TFILE=Terrain!TFILE:~-4!.jpg
SET /A COUNT+=1
ECHO %%a >output.txt
convert %%a -compress LOSSLESS !TFILE!
)
)

그것을 위해 이러한 파일을 처리 할 수 ​​있도록 내가 그것을 만들 수있는 방법이 다음과 같이

내 코드입니다 나중에 이미지를 사용할 때 계속해서 스크립트 파일을 변경해야합니다. 차라리 모든 파일을 다음과 같이 숫자가 증가하는 '지형'이름으로 동일하게 만듭니다.

미리 감사드립니다.

+0

파일이 처리되는 순서가 중요한 이유는 무엇입니까? –

+0

글쎄 내 코드는 더 큰 이미지를 사용하고 경도와 latiude 및 분당 픽셀로 결정된 하위 이미지를 가져온 다음 작은 이미지와 숫자로 나누고 그 이미지를 가져오고 이름을 바꾸고 동일한 숫자 순서로 유지합니다. , 카운터를 사용하고 있었지만 약간의 변경을 했었고 이제는 하위 문자열을 사용하기 때문에 처리 순서가 중요하지 않습니다. – Craig

답변

1

아마도 이미지를 순서대로 정렬하려면 더 많은 배치 코드를 만들 수 있지만 imagemagick을 사용할 수 있기 때문에 다른 물건을 다운로드 할 수도 있습니다. GNU sort (coreutils)를 시도해 볼 수 있습니다. 그런 다음 일괄,이

의사처럼 어떤 일을 : 당신은 아마 윈도우와 함께 제공되는 일종의 숫자 정렬 옵션이 있는지 여부를 확인할 수 있습니다

for ... (dir /b *bmp | gnu_sort -n) do (
    echo "do your stuff" 
) 

. (내가 마지막으로 확인한 경우이 옵션이 없습니다).

1

당신은

이 같은 파일 이름 뭔가를 분할 수 image000 image001, image002, ..., image010 할 파일의 이름을 바꿀 수 있습니다 :

@echo off 

    setlocal ENABLEDELAYEDEXPANSION 

    if not defined TRACE (
     set TRACE=REM 
    ) 

    %TRACE% On 

    for %%a In (data\*.*) do call :EachFile %%a 


    endlocal 

goto :eof 


:EachFile %%a 
    set Name=%~n1 
    @Echo %Name% 

    set NUm=%Name:~6,9% 
    set /a Num=Num+100000 
    @echo %Num% 

    echo ren %1 %~dp1Image%Num%%~x1 
goto :eof 
1

이 있기 때문에 찾기 어렵다 그것은 문서에서 분명하지 않습니다. 해결책은 dir 명령과 함께 FOR 명령을 사용하는 것입니다. 나는 이런 식으로 할 것입니다 :

@echo off 
ECHO Listed in name order: %1 
ECHO ------------------------------------------------------ 
FOR /F "tokens=*" %%G IN ('dir /b /o:n %1') DO echo %%G