PowerShell을 사용하여 파일 및 폴더 이름 바꾸기

Marion Paul Kenneth Mendoza 2023년6월21일
  1. PowerShell에서 파일 및 폴더 필터링
  2. PowerShell에서 파일 이름 바꾸기
PowerShell을 사용하여 파일 및 폴더 이름 바꾸기

파일 및 폴더 이름 바꾸기는 대부분 Windows 운영 체제의 기본 기능 중 하나입니다. 파일을 마우스 오른쪽 버튼으로 클릭하고 "이름 바꾸기"를 선택하여 GUI를 통해 파일 및 폴더의 이름을 바꿀 수 있습니다.

여러 파일의 이름을 변경해야 하는 경우 자동화를 통해 처리하는 것이 더 효율적입니다. 이 문서에서는 파일 및 폴더 필터링과 Windows PowerShell을 사용하여 파일 이름을 바꾸고 파일 확장명을 변경하는 방법에 대해 설명합니다.

PowerShell에서 파일 및 폴더 필터링

Windows PowerShell Get-ChildItem 명령은 지정된 디렉터리 또는 위치에서 운영 체제 항목을 가져옵니다. 또한 cmdlet에 지정된 위치는 레지스트리, 파일 시스템 또는 인증서 저장소일 수 있습니다.

이 문서에서는 파일 및 폴더에 대한 예제에 더 중점을 둘 것입니다.

통사론:

Get-ChildItem -Path C:\PS\Temp

위의 명령에서 Get-ChildItem cmdlet은 -Path 매개 변수의 제공된 값에서 모든 항목을 가져옵니다. Get-ChildItem cmdlet을 실행하면 PowerShell 콘솔에서 Mode, LastWriteTime, Length(파일 크기) 및 Name 속성이 있는 파일, 디렉터리를 표시합니다.

출력:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----l        18/01/2022   8:52 pm                Microsoft
d----l        20/12/2021   3:36 pm                Cisco
-a---l        30/12/2021   3:24 pm          (151) backup_phrase.txt
-a---l        17/06/2021   3:23 am       (410049) CEF17501168.pdf
-a---l        16/05/2021   3:32 am          (677) default.txt
-a---l        21/08/2020   9:06 am         (2240) test.csv
-a---l        26/06/2021   8:25 am        (63399) banner.jpg
-a---l        09/03/2021  10:48 pm          (143) inventory.xlsx
<SNIP>

-Filter 매개변수를 사용하면 단 하나의 표현식으로 검색 결과를 좁힐 수 있습니다. 보다 원활한 쓰기 경험을 위해 Get-ChildItem 명령 대신 gci라는 별칭을 사용할 수도 있습니다.

예제 코드:

gci -Filter C:\PS\Temp\* -Filter *.xlsx

출력:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---l        09/03/2021  10:48 pm          (143) inventory.xlsx
<SNIP>

여러 조건을 허용하는 -Include 매개변수를 사용할 수 있습니다. 따라서 -Include 매개변수가 -Filter 매개변수보다 낫다고 말할 수 있습니다.

그러나 -Include 매개변수를 사용하려면 표현식에 -Path 매개변수가 있어야 합니다.

예제 코드:

gci -Path C:\PS\Temp\* -File -Include CEF*.pdf, *.xlsx, *.txt

출력:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---l        17/06/2021   3:23 am       (410049) CEF17501168.pdf
-a---l        16/05/2021   3:32 am          (677) default.txt
-a---l        09/03/2021  10:48 pm          (143) inventory.xlsx
<SNIP>

경로는 ‘- Include’ 스위치 매개변수를 사용할 때 끝에 와일드카드 별표(*)를 포함해야 합니다. 이 와일드카드는 -Include 매개변수에 정의된 특정 확장자를 사용하여 모든 하위 경로 항목을 쿼리하고 있음을 나타냅니다.

PowerShell에서 파일 이름 바꾸기

Windows PowerShell 이름 바꾸기 명령 Rename-Item은 파일 및 폴더와 같은 운영 체제 항목의 파일 이름을 바꾸는 데 사용됩니다. 예를 들어 TestFile.txt 이름을 RenamedFile.txt로 변경합니다.

예제 코드:

Rename-Item -Path '.\TestFile.txt' -NewName 'RenamedFile.txt'
gci -Filter 'RenamedFile.txt'

이제 gci 명령을 시작하여 특정 항목을 필터링하면 파일 이름이 변경되었음을 확인할 수 있습니다.

출력:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/10/2021  11:38 PM           2982 RenamedFile.txt

Rename-Item cmdlet은 특정 파일의 파일 이름을 바꿀 뿐만 아니라 파일 형식을 변경할 수도 있습니다. 예를 들어 아래 코드 스니펫은 .txt 형식의 모든 파일을 필터링하고 해당 파일 형식을 .csv로 변경하여 Get-ChildItemRename-Item 명령의 조합을 사용합니다.

예제 코드:

gci *.txt | Rename-Item -NewName { $_.Name -replace '.txt', '.csv' }
gci -Filter *.csv

출력:

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/10/2021  11:38 PM           2982 RenamedFile.csv
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn