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-ChildItem
및 Rename-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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn