2017-09-12 6 views
1

내가 뭘하고 싶은지 설명하여 시작하겠습니다.배치 파일에 조건부로 파일 이름 바꾸기

카메라의 사진이있는 폴더가 있습니다. 이름은 다음과 같습니다. DSC_0030.jpg DSC_0030 (2) .jpg DSC_0031.jpg DSC_0030 (2) .jpg 등등.

(2)가있는 카드를 다른 메모리 카드에서 가져와 나중에 찍었 기 때문에이 카드를 살펴볼 때 매우 성가시다.

날짜별로 정렬하는 것도 효과가없는 것 같습니다. 사진은 내 카메라가 아닌 다른 폴더로 다시 가져올 수 없습니다.

제 아이디어는 이와 같은 배치 파일이지만 구문을 알지 못합니다.

foreach(file in "folderpath") { 
    if (instr(file.name, "(2)")) { 
     file.name = "2 " + file.name; 
    } else { 
     file.name = "1 " + file.name; 
    } 
} 

답변

0

@echo off 
::: set the correct path ::: 
set "photos=c:\photos" 

setlocal enableDelayedExpansion 
for %%a in ("%photos%\*(?).???") do (
    set "filename=%%~na" 
    set "wb=!filename:~0,-3!" 
    set "number=!filename:~-2,-1!" 

    rem :::: remove echo word if file name looks ok ::: 
    echo ren "%%~fa" "!number!-!wb!%%~xa" 

) 
+0

감사를 테스트하지! 일한 경이와 나는 새로운 것을 배웠습니다! – KaniJonas