반응형

오늘은 지난 시간에 이어서 파워쉘 스크립트를 이용하여 특정 폴더 내에 있는 영상 파일들을

한꺼번에 바꿀 수 있는 자동화 된 스크립트를 공유드리겠습니다.

 

방법은 먼저 특정 폴더를 지정하여 동영상 파일들을 복사하여 넣어줍니다.

저는 바탕화면 하위에 있는 "1212"라는 폴더에 동영상 파일들을 넣었습니다.

파워쉘 스크립트 실행 전 파일명

 

파일들을 다 넣었으면 스크립트를 실행합니다.

참고로 파워쉘 스크립트와 ExifTool(exe 실행파일은) 바탕화면에 위치 시키고 스크립트를 실행했습니다.

 

ExifTool에 대한 전반적인 내용은 이전 포스팅에서 참고하시면 됩니다.

https://betterinvesting.tistory.com/291

 

[PowerShell] 파워쉘을 이용하여 동영상 파일 이름을 생성시간으로 변경하는 방법 - 1

가족들의 사진과 동영상을 백업하던 중 사진과 동영상 파일들 이름이 뒤죽박죽이여서 날짜별로 정리가 필요했습니다. 이미지 사진 파일은 PYTHON 프로그램을 만들어서 이름을 변경

betterinvesting.tistory.com

 

스크립트를 실행하면 스크립트에 지정된 폴더(ex, 1212) 하위에 있는 모든 동영상 파일에 생성날짜를 읽어들여서

기존 파일 이름.MOV -> 생성날짜_시간.MOV 으로 변경하여 줍니다.

파워쉘 스크립트 실행 화면

 

스크립트가 다 실행되면 아래 사진과 같이

파일 이름들이 생성날짜_생성시간.<확장자> 형식으로 변경되게 됩니다.

파워쉘 스크립트 실행 후 파일명

 

 

자동화된 스크립트는 아래에서 공유드리겠습니다.

이 스크립트는 제가 실제로 실행하였던 스크립트이니 상황에 맞게 수정하여서 사용하시면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 영상파일 경로로 이동
cd C:\Users\nick\Desktop\1212
 
# 현재 경로 확보
$pwd = Get-Location | foreach {$_.Path}
 
# 파일명 리스트 확보
$movie_list = Get-ChildItem . *.M* | foreach {$_.Name}
 
foreach($movie in $movie_list){
    echo $movie
    $file_abs = $pwd+'\'+$movie
    
    # 파일 확장자
    $ext = [System.IO.Path]::GetExtension($movie)
    
    # 파일 생성일 확보
    $c_date = C:\Users\nick\PycharmProjects\picture_name_collector\exiftool.exe $file_abs | findstr /R ^Creation
  
    
    # 파일명 수정
    $name = $c_date.Substring(34,19).replace(':', '').replace(' ','_')
    
    # 파일 이름 수정 부분
    $new_name = $name+$ext
    echo $new_name
    Rename-Item -Path $file_abs -NewName $new_name
}
 
# 이전 경로로 이동
cd ..\
cs

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

 

 

반응형
반응형

 

가족들의 사진과 동영상을 백업하던 중 사진과 동영상 파일들 이름이 뒤죽박죽이여서 날짜별로 정리가 필요했습니다.

이미지 사진 파일은 PYTHON 프로그램을 만들어서 이름을 변경했는데 문제는 동영상 파일의 이름을 수정하는 것이였습니다.

 

* 참고로 Python 프로그램을 이용하여 사진 이미지 파일의 이름을 수정하는 방법은 다음 포스팅에서 따로 다루도록 하겠습니다.

 

동영상 파일은 Python 프로그램을 통해서 해결할 수 없기 때문에

윈도우 PowerShell 스크립트를 통해 해결했습니다.

 

이제 단계별로 파일이름을 자동으로 수정하는 방법을 설명드리겠습니다.

 

 

  Step 1. EXIFTool 다운로드

 

동영상 파일의 생성날짜를 알기 위해서는 동영상 파일의 Meta 데이터에 접근해야 하는데

그 정보를 얻기 위해선 exiftool 프로그램을 통해 정보를 확인할 수 있습니다. 

 

아래 다운로드 경로에 exiftool 프로그램을 다운받습니다.

다운로드URL : https://exiftool.org/

 

 

 

  Step 2. PowerShell을 통해 생성날짜 필터링

 

다운을 받고 난 후, 아래 사진과 같이 명령어를 입력하면 동영상의 자세한 정보를 확인할 수 있습니다.  

명령어: exiftool.exe <동영상파일>

 

저희가 관심있는 것은 동영상 파일의 생성 시간이기 때문에 동영상 파일의 생성 시간만 필터링 하여 보겠습니다.

필터링 명령어 뒤에 " | findstr /R ^Creation" 를 입력하면 해당 동영상 파일의 생성시간만 추출할 수 있습니다.

 

이 생성시간을 변수로 입력받아 문자열 파싱(Parsing)을 하면 원하는 형식으로 파일명을 지정할 수 있습니다.

여기서 부터 어려운 얘기가 시작되죠?

간략하게 아래 스크립트를 참고하여 복사 붙여넣기 하면 됩니다.

 

 

  파일 이름 변경을 위한 PowerShell 스크립트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 영상 파일 경로로 이동
cd C:\Users\nick\Desktop\2020_01
 
# 현재 경로 확보
$pwd = Get-Location | foreach {$_.Path}
 
# 파일명 확보
$movie = "IMG_8638.MOV"
 
# 파일 절대 경로
$file_abs = $pwd+'\'+$movie
 
# 파일 확장자
$ext = [System.IO.Path]::GetExtension($movie)
 
# 파일 생성일 확보
$c_date = C:\Users\nick\Desktop\exiftool.exe $file_abs | findstr /R ^Creation
 
# 파일명 형식 지정
$name = $c_date.Substring(34,19).replace(':', '').replace(' ','_')
 
# 파일 이름 수정 부분
$new_name = $name+$ext
Rename-Item -Path $file_abs -NewName $new_name
 
# 바뀐 파일 출력
echo $new_name
cs

 

위 스크립트를 실행해보겠습니다.

 

 

  Step 3. 스크립트 실행

 

먼저 스크립트를 실행하기 전에 파일명을 확인해 보면 IMG_8638.MOV 입니다.

 

 

위 공유해드린 스크립트를 실행해보겠습니다.

윈도우 파워쉘을 실행하여 위 스크립트를 입력합니다.

 

스크립트 실행 결과

다음과 같이 파일이름이 "<생성날짜>_<생성시간>.MOV" 형식으로 변경되었습니다.

 

 

다음 포스팅에서는 이 스크립트를 이용하여 특정 폴더 내에 있는 영상 파일들을

한꺼번에 바꿀 수 있는 자동화 된 스크립트를 공유드리겠습니다.

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

 

 

반응형
반응형

파워쉘 스크립트를 실행하는 방법에 대해 말씀드리겠습니다.

윈도우는 기본적으로 파워쉘 스크립트를 실행하지 못하게 막아놓았습니다.

 

때문에 스크립트를 실행하려면 기본 PowerShell 실행 정책을 변경해야 합니다.

기본 실행 정책인 Restricted는 로컬 컴퓨터에 쓰는 스크립트를 포함하여 모든 스크립트가 실행되지 않도록 합니다.

 

  현재 PowerShell 실행 정책 확인 명령어

1
Get-ExecutionPolicy -List
cs

 

 

  스크립트(.ps1) 실행 정책 변경 방법

스크립트(.ps1)를 실행하기 위해서

현재 정책인 Restricted를 -> RemoteSigned 또는 AllSigned 로 바꾸면 스크립트를 실행 할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
### 스크립트 실행 정책 변경 ###
1. 관리자 권한으로 PowerShell 실행
 
2. Set-ExecutionPolicy RemoteSigned
3. Y 입력
 
# 위 방법이 안되면 아래 명령어 실행
 
2-1. Set-ExecutionPolicy AllSigned
3-1. Y 입력
cs

 

Step 1. 관리자 권한으로 Power Shell 실행

 

 

Step 2. Set-ExecutionPolicy 명령으로 기본 정책 변경

Set-ExecutionPolicy RemoteSigned 명령어를 입력 후 Y를 입력하시면 됩니다.

*위 방법으로 스크립트가 실행되지 않을 때에는 Set-ExecutionPolicy AllSigned 명령으로 재시도 해보시기 바랍니다.

 

 

Step 3. 스크립트 실행 확인

기본 실행 정책을 변경한 후 기존에 실행되지 않았던 스크립트를 실행하여 봅니다.

 

 

내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!

caul334@gmail.com

 

 

[참고 자료]

https://docs.microsoft.com/ko-kr/powershell/module/microsoft.powershell.core/about/about_scripts?view=powershell-7.2 

 

스크립트 정보 - PowerShell

PowerShell에서 스크립트를 실행하고 작성하는 방법을 설명합니다.

docs.microsoft.com

https://docs.microsoft.com/ko-kr/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2 

 

실행 정책 정보 - PowerShell

PowerShell 실행 정책을 설명하고 이를 관리하는 방법을 설명합니다.

docs.microsoft.com

 

반응형

+ Recent posts