
연도별, 월별 파일로 분류된 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# 형식을 사용하는 것이 더 쉽고, 마지막에 몇 자리인지 계산하는 것이 더 쉽습니다...