PowerShell에서 파일 이름에 생성 날짜 및 시간 추가

3335 단어 WindowsPowerShell
작성일시순으로 파일을 정리하고 싶을 때 파일명의 머리에 작성일시를 추가하는 스크립트입니다.

PowerShell 스크립트는 기본적으로 ISE 또는 PowerShell 화면을 열어 실행합니다.
배치 파일로부터의 기동 방법에 대해서는 이쪽.
  → 배치 파일에서 PowerShell 스크립트 시작

powershell
Set-Location "C:\Users\user\Pictures\My Cloud"
$movieFiles=Get-Childitem "*.MTS" -File
$movieFiles|foreach{
                    $newName=$_.LastWriteTime.ToString("yyyyMMdd-HHmmss")+$_.Name
                    Rename-Item $_.FullName -NewName $newName
                    }

먼저 파일이 들어 있는 폴더로 이동합니다.

폴더 지정
Set-Location "C:\Users\user\Pictures\My Cloud"

다음에 파일의 확장자를 지정합니다.

파일 확장자 지정
$movieFiles=Get-Childitem "*.MTS" -File

확장자가 표시되지 않으면 탐색기의 보기 탭에서 파일 이름 확장명을 확인합니다.


새로운 이름
$newName=$_.LastWriteTime.ToString("yyyyMMdd-HHmmss")+$_.Name

 $.LastWriteTime은 그대로라고 날짜형이므로, 파일명으로 하면 에러가 나오기 때문에, ToString나 format로 캐릭터 라인형으로 변환합니다.
날짜만을 파일명으로 하면, 같은 작성일의 파일이 있으면 에러가 되므로, +$.Name 와 원래의 파일명을 뒤에 붙이는 것으로 에러 회피하고 있습니다. 확장자도 추가됩니다.

 yyyyMMdd-HHmmss를 yyyymmdd-HHmmss라고 기재하지 않도록 주의해 주세요.
Windows계의 언어는 기본적으로 대문자 소문자를 구별하지 않기 때문에 나 포함해 의식하지 않는 사람이 많다고 생각합니다만, mm는 분, MM은 달이므로, MM을 소문자로 하면 연 "분"일이 되어 버려 합니다.
덧붙여서, HH를 hh라고 해도 24시간 표기가 12시간 표기가 될 뿐이므로 영향은 적습니다.

좋은 웹페이지 즐겨찾기