카운터를 사용하여 일괄적으로 파일 이름을 바꾸려면 어떻게 해야 합니까?

카운터를 사용하여 일괄적으로 파일 이름을 바꾸려면 어떻게 해야 합니까?

연도별, 월별 파일로 분류된 14,000장의 사진이 여러 대의 카메라로 촬영되었습니다. 사진을 찍은 날짜를 파일 이름에 반영하고 싶습니다.

예를 들어, 1998년 10월 16일에 찍은 모든 사진은 이라는 폴더에 있습니다 1998\10 October\19981016.

모든 사진의 이름을 19981016_0001 19981016_0002 등으로 지정하고 싶습니다.

변경하려는 폴더가 나열되는 지점에 도달할 수 있지만 실제로 변경할 수는 없습니다. 내 사진은 모두 .jpg입니다.

혹시라도 망가질까봐 임시 파일로 복사본을 만들었습니다. 나는 다음을 입력하여 시작했습니다.

cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp" 

그런 다음 파일을 성공적으로 로드한 후 이 포럼에서 찾은 공식을 사용했습니다.

ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif}

내가받은 오류는 다음과 같습니다.

Unexpected token ' .19981016' in expression or statement.

At line:1 char:12 + $.19981016 <<<<

오류가 여러 번 반복되었습니다.

웹에서 여러 수식을 찾았지만 대부분 생성된 파일은 예를 들어 vacation (1).jpg와 같이 괄호로 번호를 매겼습니다. 날짜 끝에 밑줄 뒤에 4자리 카운터를 원합니다. 즉 19981016_0001

답변1

내 생각에 당신은 수식을 수정했고 적어도 두 가지 실수를 저질렀습니다.

  • Rename-Item $_-> 그렇지 않으면 PowerShell은 "_"라는 파일의 이름을 바꾸려고 시도합니다.
  • "$($_.Directory.Name)_{0:D9}.jpg" -f $i++- 현재 개체의 디렉터리 이름을 가져와야 하며 서식을 지정해야 합니다. - D# 형식을 사용하는 것이 더 쉽고, 마지막에 몇 자리인지 계산하는 것이 더 쉽습니다...

관련 정보