먼저, Stackexchange에 배치 파일 이름 바꾸기 질문이 많이 있지만 여기서 검색하거나 웹에서 만족스러운 결과를 얻지 못했습니다. 또한, 아마도 다른 방법으로이 작업을 수행 할 수 있음을 알고 있지만, 원하는 방식으로 작업 할 수 있도록 배치 파일을 얻을 수있었습니다 (단순 작업, 지나치게 복잡한 작업 없음). 예를 들어 GUI 지원 도구를 사용하여 더 쉬운 솔루션을 찾더라도, 나는 여전히 지식에 대한이 문제에 대한 해결책을 원합니다.여러 하위 문자열로 파일 이름 바꾸기
저는 (정기적으로) 내 휴대 전화에서 가져 오는 이미지 묶음의 이름을 바꾸려고합니다. 이미지의 기본 이름 템플릿은 입니다. IMG_YYYYMMDD_HHMMSS.jpg; 예 : IMG_20121224_165222.jpg
그럼, 다른 사람들과 함께이 폴더들로 가득 찬 폴더가 있다고 가정 해 봅시다. 나는 IMG로 시작하는 파일을 선택하고 다음 형식으로 파일의 이름을 변경하려면 : YYYY-MM-DD HH.MM.SS.jpg
이 문자열을 사용하여 시작하는 나에게 오히려 사소한 듯하지만 그것을 작동시키지 못했습니다. 변수에 지연된 확장을 사용했습니다. 이 게시물의 끝 부분에서 사용하고있는 코드를 추가했습니다.
위의 예제 파일 (IMG_20121224_165222.jpg) 대신 "2012-12-24 16.52.22.jpg"이 아닌 "2012-12-24 16.NAME:15,2NAME:~17, 2.jpg "(내가 사용하는 변수를 ECHO했을 때 아래 코드를 참조하십시오). 알다시피 이상한 행동은 첫 번째 마침표 (시간 필드에서) 이후에 시작되므로 날짜와 마찬가지로 하이픈으로 바꾸려고 시도했지만 여전히 멈추지 않습니다. 나는 "2012-12-24 16-NAME : 15,2NAME : ~ 17,2.jpg"가되었습니다.
나는 왜 이런 일이 발생했는지 전혀 모르겠다. if 조건이 만족 스럽다면 부분 문자열 만 특정 지점 이후에 확장되지 않습니다.
모든 도움을 주실 수 있습니다. 감사!
다음은이 작업에 사용 된 최신 코드입니다 (이름 목록을 txt 파일로 출력하여 확인). 관심있는 사람들을 위해
@ECHO OFF>NUL
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (*.*) DO (
SET NAME=%%A
IF /I "!NAME:~0,3!"=="IMG" (
ECHO !NAME:~4,4!-!NAME:~8,2!-!NAME:~10,2! !NAME:~13,2!-!NAME:15,2!-!NAME:~17,2!.jpg >> output.txt
)
)
PAUSE
이 출력 파일의 내용입니다 :
2012-12-24 16-NAME:15,2NAME:~17,2.jpg
2012-12-25 17-NAME:15,2NAME:~17,2.jpg
2012-12-25 17-NAME:15,2NAME:~17,2.jpg
2012-12-25 19-NAME:15,2NAME:~17,2.jpg
2012-12-25 21-NAME:15,2NAME:~17,2.jpg
2012-12-25 21-NAME:15,2NAME:~17,2.jpg
2012-12-25 21-NAME:15,2NAME:~17,2.jpg
2012-12-27 18-NAME:15,2NAME:~17,2.jpg
2012-12-27 22-NAME:15,2NAME:~17,2.jpg
2012-12-27 22-NAME:15,2NAME:~17,2.jpg
2012-12-28 00-NAME:15,2NAME:~17,2.jpg
2012-12-28 00-NAME:15,2NAME:~17,2.jpg
2012-12-28 02-NAME:15,2NAME:~17,2.jpg
2012-12-28 03-NAME:15,2NAME:~17,2.jpg
2012-12-28 03-NAME:15,2NAME:~17,2.jpg
2012-12-30 08-NAME:15,2NAME:~17,2.jpg
2012-12-30 08-NAME:15,2NAME:~17,2.jpg
2012-12-30 08-NAME:15,2NAME:~17,2.jpg
2012-12-30 08-NAME:15,2NAME:~17,2.jpg
2012-12-30 08-NAME:15,2NAME:~17,2.jpg
2012-12-31 03-NAME:15,2NAME:~17,2.jpg
2012-12-31 03-NAME:15,2NAME:~17,2.jpg
2012-12-31 03-NAME:15,2NAME:~17,2.jpg
2012-12-31 03-NAME:15,2NAME:~17,2.jpg
2012-12-31 21-NAME:15,2NAME:~17,2.jpg
2012-12-31 21-NAME:15,2NAME:~17,2.jpg
2012-12-31 21-NAME:15,2NAME:~17,2.jpg
2012-12-31 21-NAME:15,2NAME:~17,2.jpg
2012-12-31 21-NAME:15,2NAME:~17,2.jpg
2013-01-01 14-NAME:15,2NAME:~17,2.jpg
2013-06-10 09-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 10-NAME:15,2NAME:~17,2.jpg
2013-06-10 11-NAME:15,2NAME:~17,2.jpg
2013-06-10 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
2013-06-12 17-NAME:15,2NAME:~17,2.jpg
그것은 뛰어 가서 당황 죽을 시간이다. 나는 지금 바보 같다고 느낍니다. 감사합니다. 적어도 그것은 개념상의 문제가 아니 었습니다. E-he-he. –