2012-01-18 3 views
0

저는 매일 밤 10 장의 이미지를 반복 방식으로 바꾸고 싶습니다. 나는이 다음을 수행하는 배치 파일 작성했습니다 :DOS에서 루핑 및 가변 산술 일괄

@echo off 
cls 
ren image10.jpg imagetemp.jpg 
ren image1.jpg image10.jpg 
ren image2.jpg image1.jpg 
ren image3.jpg image2.jpg 
ren image4.jpg image3.jpg 
ren image5.jpg image4.jpg 
ren image6.jpg image5.jpg 
ren image7.jpg image6.jpg 
ren image8.jpg image7.jpg 
ren image9.jpg image8.jpg 
ren imagetemp.jpg image9.jpg 
exit 

내가 그러나 나는 몇 가지 문제가 있어요, 내 이미지는 단지 증가 계산하기 때문에 루프가이를 다시 작성하고 싶습니다 - 내 스크립트를 그냥 종료하고 셸 윈도우는 출력을 보지 않고 닫힙니다 (출력이 무엇인지 알기 위해 모든 "렌스"를 "에코"로 변경했습니다). 내가 전에 말했듯이

cls 
ren image59.jpg imagetemp.jpg 
ren image1.jpg image59.jpg 

FOR %a IN (2 59) DO (
    set t = %a% - 1 
    ren image%a%.jpg image%t%.jpg 
) 
ren imagetemp.jpg image58.jpg 
exit 

는, 나도 "는 예기치 않은"얻을, 또는 내가 시도하고를 %%로 변경하는 경우, 그냥 충돌하고 창을 닫습니다 : 여기 내 현재의 시도입니다. 어떤 팁? 하나

+1

오류가 무엇인지 확인하려면 '일시 중지'를 시도해보십시오. 또한'% a %'보다는 "%% a"를 사용해보십시오. –

+0

감사합니다 ... %% a 작품을 사용하고 있지만 여전히 설정할 수 없거나 액세스 할 수 없습니다. – Darrrrrren

+0

난 그냥 cmd에서 약간의 실험을 실행했습니다, t는 작동하지 않는 이유는 배치가 숫자를 처리 할 수 ​​없기 때문입니다. a를 259로 설정하면 t를 a - 1로 설정하면 258이 아닌 "259 - 1"로 에코됩니다. 또한 set을 사용할 때 등호 사이에 공백이 없을 때만 작동하는 것처럼 보입니다 따라서'set t = % a % - 1'처럼 작동 할 것입니다. –

답변

3

쉬프트 모든 이미지는, 첫 번째는 맨 마지막 위치로 다시 이동 :

@echo off 
cls 
set count=59 
ren image1.jpg imagetemp.jpg 

for /L %%a IN (2,1,%count%) do call :rename %%a 

ren imagetemp.jpg image%count%.jpg 
goto :EOF 

:rename 
set /A t=%1-1 
ren image%1.jpg image%t%.jpg 

리틀 향상이 추가 : 당신이 순환에가는 이미지의 수를 카운트를 설정합니다.

+0

내가 만들려고했던 것보다 낫다 = D – Mechaflash

+0

너는 나보다 나은 남자/여자 야! 건배. 이 DOS 구문은 이상한 것입니다. – Darrrrrren