2014-02-20 3 views
-1

폴더에있는 모든 이미지의 이름을 바꾸는 스크립트를 만들려고합니다. 폴더를 표준화하기 위해 이미지의 여러 폴더를 한 번에 이름을 바꾸는 데 사용됩니다. 내 모든 만화의 이름 지정 체계. 그래서 75 * .cbz가 디렉토리에 보관되지 않는다고 말했을 것입니다. 그런 다음 각 이미지의 이름을 바꾸기 위해 각 만화를 구성하는 이미지가 들어있는 하위 폴더가있는 폴더에서 스크립트를 실행합니다.폴더 이름을 사용하여 파일 이름 바꾸기 일괄 처리 하시겠습니까?

구조는, 예를 들면 다음과 같습니다

PageRenamer.bat

시리즈 이름 000 (년)

이름 pg1.jpg, 이름 pg2.jpg ... 이름 pg24.jpg

\

시리즈 이름 001 000.jpg \ 시리즈 이름 001 (년), 시리즈 이름 001 001.jpg ... 시리즈 이름 001 025.jpg

기타 ...

내가 찾고 최종 결과는 스크립트를 실행 한 후 모든 이미지가 Series Name 001 (Year) 000.jpg 이름이다 - Series Name 001 (Year) 025.jpg을 (페이지 수/이미지가 다를 수 있음)와 Series Name 001 (Year)\ 폴더 안에 거. 이제는 내 만화가 단일 레이어 아카이브가되기를 희망합니다. 각 하위 폴더 (만화 루트)의 하위 폴더에있는 이미지를 루트 하위 폴더 (만화 루트)로 이동하는 기능을 통합하는 방법이 있다면 더 좋을 것입니다. 예 :

시리즈 이름 000 \

이름 pg1.jpg, 이름 pg2.jpg ... 이름 pg24.jpg

\

PageRenamer.bat

시리즈 이름 000 (년)

\ 시리즈 이름 001 (년)

시리즈 이름 001 \

시리즈 이름 001 \

시리즈 이름 001 000.jpg, 시리즈 이름 001 001.jpg ... 시리즈 명 기타 001 025.jpg

...

의 형식을 일치하도록 변경 (현재 사용되지 않는 하위 폴더 삭제 포함). 어떤 도움도 대단히 환영합니다. 대부분의 만화는 하나의 계층이기 때문에 첫 번째 작업을 수행하기에 충분히 간단한 스크립트를 작성해 드리겠습니다. 만약 내가 그렇지 않은 것들을 고칠 걱정을하지 않는다면 엄청난 보너스가 될 것입니다.

+2

현재 스크립트의 모양은 무엇이며 어떤 문제점이 있습니까? (당신이 이미 시도한 것을 보여주지 않고 어떤 문제가 발생했는지 표시하지 않는 한 게시물이 닫히는 경향이 있습니다.) – admdrew

+0

글쎄 검색하고 검색 한 결과 100 개의 다른 방법으로 모두 이름을 바꿀 수있었습니다.) - (25) 번호 매김 체계 그러나 그것은 추악하고 000-025 계획처럼 기능적이지 않다. 나는 대괄호없이 이런 식으로 번호를 매길 수는 없습니다. 나는 내가 제대로 작동하지 않을 것이라는 것을 알고있는 bs 스크립트를 작성할 수는 있지만 스크립트를 제대로 수행하기 위해서는 완전히 다른 점이 있기 때문에 요점을 보지 못한다. 또한 이미지를 각 폴더 루트로 이동하는 방법을 알지 못합니다. 그러나 그것은 제가 염려하는 한 보너스 라인입니다. – Dracrius

+0

Binaryatrocity의 코드는 정확히 어디에서이 간단한 코드로이 작업을 올바르게 수행 할 수 있는지 알 수 없습니다. 특히 폴더 이름을 사용하고 여러 파일의 이름을 바꿀 때 사용되는 기본값 (1) - (26) 대신 이미지 000-025에 번호를 지정합니다. – Dracrius

답변

0

올바른 방향으로 가리 키도록 배치 스크립트를 몇 줄 던져 보겠습니다. 당신은 당신의 만화 폴더에있는 모든 하위 디렉터리 나열됩니다 이런 forloop으로 시작할 수 있습니다

for /d %%D in (*) do 

그런 다음 모든을 위해, 거기에 두 번째 forloop 있습니다.각 하위 디렉토리 JPG 년대와 이름을 바꿉니다 :

for %%f in (*.jpg) do (
     #here you will want to craft a string for the filename, using the subdirectory name (%D) 
     ren "%%F" "your-crafted-string.jpg" 
) 

당신은 이름에 대해 당신이 처리 한 파일의 #을 저장하는 변수를 추적해야합니다 :

set /A num=0 

당신이 각 루프의 실행을 증가 할 수 있습니다 내부 루프 :

set /A num+=1 

와 외부 루프의 각 증가 (각각의 서브 디렉토리)에 대해 재설정 :

(테스트되지 않은) 같은 것을 보일 것이다 각 파일에 대한 가장 안쪽의 루프 내부 문자열 공예
set /A num=0 

: 당신은 [디렉토리 이름] '으로 [파일] 이름 바꾸기'로이 읽을 수

ren "%%F" "!%%D%_%num%!.jpg" 

를 _ [값 num of of] .jpg "

+0

도움을 주셔서 감사합니다. 그러나 이것들은 제가 이미 알고 있었지만 작동하게하는 방법을 찾을 수 없습니다. 왜냐하면 (1) - (26) 체계 대신에 000-025 번호 체계 (실제로 0에서 시작)를 원하기 때문입니다. 게다가 문자열 조작이나 폴더 이름을 사용하는 문자열을 쓰는 방법에 대한 지식이 없습니다. 그걸 도와 줄 수 있니? 필자가 작성한 이름 바꾸기 스크립트를 많이 사용하지만 모두 "."앞이나 뒤에있는 것들을 변경하는 간단한 것입니다. 그것은 확장을 표시합니다. – Dracrius

+0

질문을 편집하여 귀하가 시도한 것을 보여줄 수 있습니까? 나는 네가 어슬렁 거리는 곳을 알아 내서 기쁘다. – binaryatrocity

+0

필자는 매우 특정한 이름을 가진 것들의 이름을 변경/이동/삭제했습니다. 어떻게 000 formate 폴더 이름 및/또는 번호 것들을 사용하려면이 인스턴스에서 변수를 설정하는 방법을 모르겠다. – Dracrius

관련 문제