PowerShell에서 파일 이름에서 경로와 확장자를 제거하는 방법
-
PowerShell에서
BaseName
속성을 사용하여 파일 이름에서 경로와 확장자 제거 -
PowerShell에서 파일 이름에서 경로와 확장자 제거를 위한
System.IO.Path
클래스 사용 - 결론

PowerShell은 시스템에서 다양한 파일 작업을 처리하는 것을 지원합니다. PowerShell에서 파일을 생성, 복사, 이동, 이름 변경, 편집, 삭제 및 보기와 같은 작업을 수행할 수 있습니다.
PowerShell에는 파일의 이름 전체 경로 및 확장자를 얻기 위해 사용할 수 있는 다양한 cmdlet이 있습니다. 시스템에서 파일을 작업할 때 경로와 확장자를 제외한 파일 이름을 가져와야 할 수도 있습니다.
이 튜토리얼에서는 PowerShell에서 파일 이름에서 경로와 확장자를 제거하는 방법을 배울 것입니다.
PowerShell에서 BaseName
속성을 사용하여 파일 이름에서 경로와 확장자 제거
PowerShell의 Get-Item
cmdlet은 파일 및 디렉터리와 같은 파일 시스템의 항목 속성을 검색하는 데 사용되는 다목적 도구입니다. 이 속성 중 하나가 .BaseName
으로, 우리의 목적에 특히 유용합니다.
예:
(Get-Item "sample.txt").BaseName
이 예에서는 스크립트가 sample.txt
가 현재 디렉터리에 있는 파일이라고 가정합니다. 파일이 다른 디렉터리에 있는 경우 전체 경로를 포함해야 하며, 예: C:\folder\sample.txt
와 같습니다.
(Get-Item "sample.txt").BaseName
을 실행하면 PowerShell은 두 가지 주요 작업을 수행합니다.
첫째, Get-Item "sample.txt"
는 sample.txt
에 해당하는 파일 개체를 검색합니다. 그런 다음, .BaseName
은 이 파일 개체의 속성에 접근하여 확장자가 없는 파일 이름을 포함합니다.
출력:
여러 파일에서 경로와 확장자를 제거하려는 경우 Get-ChildItem
cmdlet을 사용할 수 있습니다. 다음 명령은 PowerShell에서 경로와 확장자 없이 여러 파일 이름을 가져오는 방법을 보여줍니다.
예
(Get-ChildItem "*.txt").BaseName
이 코드 줄은 지정된 디렉터리에 있는 모든 .txt
파일의 기본 이름(확장자가 없는 파일 이름)을 나열합니다.
-
Get-ChildItem "*.txt"
: 이 명령은 지정된 디렉터리에서 모든.txt
파일을 가져옵니다. -
.BaseName
: 이 속성은Get-ChildItem
에 의해 반환된 각 파일 개체에 대해 접근되어 확장자가 없는 파일 이름만 추출합니다.
출력:
System.IO.FileInfo
클래스를 사용하여 확장자 없이 파일 이름을 얻을 수도 있습니다.
System.IO.FileInfo
는 파일 생성, 복사, 삭제, 이동 및 열기를 위한 속성과 인스턴스 메서드를 제공하는 .NET
클래스입니다. 또한 파일의 이름, 경로, 크기 등에 대한 자세한 정보를 제공합니다.
예:
([System.IO.FileInfo]"sample.txt").BaseName
이 줄은 sample.txt
가 현재 디렉터리에 있는 파일이라고 가정합니다. 파일이 다른 위치에 있다면 전체 경로를 지정해야 하며, 예: C:\path\to\sample.txt
와 같습니다.
이 예에서 ([System.IO.FileInfo]"sample.txt")
는 파일 sample.txt
에 대한 FileInfo
개체를 생성합니다. 이 개체는 파일에 대한 자세한 정보를 포함합니다.
이 개체의 .BaseName
속성에 접근하여 확장자 없는 파일 이름을 검색합니다.
출력:
PowerShell에서 파일 이름에서 경로와 확장자 제거를 위한 System.IO.Path
클래스 사용
System.IO.Path
클래스는 파일 경로 문자열의 조작을 위한 수많은 메서드를 제공합니다. 특히 GetFileNameWithoutExtension
메서드는 전체 경로 문자열에서 확장자를 제외한 파일 이름을 얻는 데 사용됩니다.
예:
[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
이 예는 sample.txt
가 디렉터리 경로 없이 파일 이름을 나타낸다고 가정합니다. 파일이 다른 디렉터리에 위치해 있다면 전체 경로를 포함해야 하며, 예: "C:\folder\sample.txt"
와 같습니다.
[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
를 사용하면 PowerShell은 System.IO.Path
클래스의 GetFileNameWithoutExtension
메서드를 활용하여 문자열 "sample.txt"
를 처리합니다. 이 메서드는 문자열을 지능적으로 구문 분석하고, 파일 확장자를 식별하여 제거하며, 기본 파일 이름만 반환합니다.
이 메서드는 매우 효율적이며 실제 파일이 존재할 필요가 없으며, 순수하게 문자열 수준에서 작동합니다.
출력:
결론
결론적으로, PowerShell에서 파일 조작을 마스터하는 것은 효율적인 시스템 관리를 위한 필수 요소이며, 이 기사는 다양한 방법을 사용하여 파일 이름에서 경로와 확장자를 제거하는 데 중점을 두었습니다. 개별 파일에 대한 간단한 (Get-Item "sample.txt").BaseName
에서 시작하여, (Get-ChildItem "C:\Users\rhntm\*.txt").BaseName
를 사용하여 여러 파일을 처리하는 방법으로 나아갔으며, 대량 작업에 유용한 접근 방법입니다.
객체 지향적인 [System.IO.FileInfo]
클래스와 ([System.IO.FileInfo]"sample.txt").BaseName
는 파일에 대한 자세한 정보를 제공하며, 문자열 조작의 힘인 [System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
는 .NET
클래스의 힘을 보여줍니다. 이러한 방법은 PowerShell의 다재다능성을 exemplify하며, 전문성을 심화시키고자 하는 사람은 전체 파일 경로 작업 및 파일 확장자 추출과 같은 관련 주제를 탐색하는 것이 논리적 진행이며, 포괄적인 시스템 스크립팅 및 자동화 작업을 위해 PowerShell의 잠재력을 완전히 열어줄 것입니다.