PowerShell을 사용하여 파일 확장자를 가져오는 방법

  1. PowerShell에서 Split-Path를 사용하여 파일 확장자 가져오기
  2. PowerShell에서 Get-ChildItem Cmdlet을 사용하여 파일 확장자 가져오기
  3. PowerShell에서 System.IO.Path를 사용하여 파일 확장자 가져오기
  4. PowerShell에서 System.IO.FileInfo를 사용하여 파일 확장자 가져오기
  5. 결론
PowerShell을 사용하여 파일 확장자를 가져오는 방법

파일 경로에서 파일 이름을 추출하는 것은 PowerShell 스크립트를 작업할 때 일반적으로 요구됩니다. 예를 들어, 스크립트가 전체 파일 경로를 수신하고 파일 확장자만 가져오고 싶을 때입니다.

이 포괄적인 가이드는 PowerShell을 사용하여 파일 확장자를 추출하는 다양한 방법론을 탐구합니다. 이는 여러 스크립팅 시나리오에서 기본적이지만 중요한 작업입니다. 이 기사의 각 섹션에서는 Split-Path의 단순성부터 더 정교한 .NET 프레임워크 및 System.IO.FileInfo 클래스를 사용하는 방법에 이르기까지 각각 다른 접근 방식을 소개합니다.

PowerShell에서 Split-Path를 사용하여 파일 확장자 가져오기

이 맥락에서 Split-Path -Leaf를 사용하는 주요 목적은 주어진 경로에서 파일 이름과 해당 확장자를 분리하는 것입니다. 이 방법은 파일 이름이나 상대 경로로 작업할 때 특히 효과적입니다.

파일 이름을 얻은 후 문자열 분할 방법을 사용하여 확장자를 쉽게 추출할 수 있습니다.

예제 코드:

# Define the file path
$filePath = "sample.txt"

# Extract the file extension
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1]

# Output the extension
Write-Output $extension

이 스크립트에서는 파일 이름 $filePath를 정의하는 것으로 시작합니다. Split-Path -Path $filePath -Leaf 명령은 파일 이름(sample.txt)을 분리합니다.

그런 다음 이 문자열을 마침표에서 분할하여 첫 번째 요소가 확장자 없는 파일 이름(sample), 두 번째 요소가 확장자(txt)가 되는 배열이 생성됩니다. 이 배열의 두 번째 요소에 [1]를 사용하여 접근하면 확장자를 얻을 수 있습니다.

마지막으로, Write-Output을 사용하여 확장자를 표시합니다.

출력:

파워쉘을 사용하여 파일 확장자를 가져오기 - 출력 1

PowerShell에서 Get-ChildItem Cmdlet을 사용하여 파일 확장자 가져오기

Get-ChildItem 명령은 하나 이상의 지정된 위치의 항목을 가져옵니다. 예를 들어, 객체가 컨테이너인 경우 말하는 컨테이너 안의 항목, 즉 자식 항목들을 가져옵니다.

위치는 디렉터리와 같은 파일 시스템일 수도 있고, 다른 Windows PowerShell 공급자에 의해 노출된 사이트일 수도 있습니다. Get-ChildItem 명령은 파일 시스템 드라이브의 디렉터리, 하위 디렉터리 및 파일을 가져옵니다.

Get-ChildItem cmdlet은 파일을 다루기 때문에 쿼리된 파일의 확장을 얻기 위해 내보낼 수 있는 PowerShell 속성 속성이 있습니다. Split-Path cmdlet과 달리, 이 방법은 파일 이름에 점 문자가 있어도 확장을 적절하게 가져올 수 있습니다.

예제 코드:

Get-ChildItem 'sample.txt' | Select-Object Extension

이 스크립트에서 Get-ChildItem 'sample.txt'sample.txt에 대한 파일 객체를 검색합니다. Get-ChildItem cmdlet은 일반적으로 디렉터리의 항목을 나열하는 데 사용되지만, 특정 파일 이름이 제공되면 해당 파일에 대한 파일 객체를 반환합니다.

이 객체는 파일의 확장을 포함한 다양한 속성을 포함합니다.

Get-ChildItem의 출력은 Select-Object Extension으로 파이프됩니다. 이 cmdlet은 파일 객체의 속성을 필터링하여 Extension 속성만 출력합니다.

출력:

파일 확장자를 가져오기 위해 파워쉘 사용 - 출력 2

PowerShell에서 System.IO.Path를 사용하여 파일 확장자 가져오기

다음 접근 방식은 .NET 프레임워크 클래스를 기반으로 합니다. PowerShell 스크립트에서 .NET 프레임워크 클래스를 사용하는 것은 일반적으로 권장되지 않지만(특히 기본 PowerShell 명령이 사용 가능한 경우) 이 특정 사용 사례에 적합할 수 있습니다.

아래 예제에서 파일 이름이 주어지면 System.IO.Path 클래스의 GetExtension 정적 메서드를 사용합니다:

예제 코드:

[System.IO.Path]::GetExtension("sample.txt")

제공된 예제에서 .NET 클래스 [System.IO.Path]가 사용되며, 정적 메서드 GetExtension()이 호출됩니다. 메서드에 "sample.txt"를 인수로 전달합니다.

이 메서드는 문자열을 분석하고 파일의 확장을 나타내는 하위 문자열을 추출합니다. 이 방법의 장점은 파일 이름과 경로를 처리할 때의 단순성과 직접적인 접근 방식으로, 파일이 파일 시스템에 존재할 필요가 없다는 것입니다.

출력:

PowerShell을 사용하여 파일 확장자 가져오기 - 출력 3

PowerShell에서 System.IO.FileInfo를 사용하여 파일 확장자 가져오기

이 맥락에서 System.IO.FileInfo의 주요 용도는 특정 파일에 대한 자세한 정보를 얻는 것입니다. 특히 파일 메타데이터가 중요하고 기본 파일 처리를 넘어서는 필요가 있는 스크립트에서 유용합니다.

예제 코드:

# Create a FileInfo object for the specified file
$FileInfo = New-Object System.IO.FileInfo('sample.txt')

# Access the extension property of the FileInfo object
$Extension = $FileInfo.Extension

# Print the extension
Write-Output $Extension

이 스크립트에서 우리는 sample.txt에 대한 System.IO.FileInfo 객체를 생성하여 프로세스를 시작합니다. 이 객체는 파일의 이름, 디렉터리, 크기 및 중요한 확장을 포함한 다양한 세부 정보를 캡슐화합니다.

FileInfo 객체의 .Extension 속성에 접근하여 파일의 확장자를 추출합니다. 이 속성은 문자열로서 전체 확장자를 반환하며, 맨 앞에 점도 포함됩니다(예: .txt).

출력:

파워셸을 사용하여 파일 확장자를 가져오기 - 출력 4

결론

PowerShell에서 파일 확장의 뉘앙스를 탐색하면서 각기 고유한 장점과 응용 프로그램을 가진 다양한 기법을 드러냅니다. 이 탐구는 간단하고 빠른 검색을 위한 Split-PathGet-ChildItem의 직접적인 사용에서부터, 복잡성과 기능의 균형을 우아하게 달성한 .NET 프레임워크의 System.IO.PathSystem.IO.FileInfo의 깊은 영역에 이르기까지 진전을 보여주었습니다.

일상적인 작업을 자동화하든, 대량 파일 작업을 수행하든, 시스템 관리 예제를 위한 정교한 스크립트를 개발하든, 이러한 방법을 이해하는 것은 PowerShell 도구 세트를 풍부하게 합니다. 여기서 논의된 다양한 접근 방식은 PowerShell의 적응성과 강력함을 강조하며, 초보자와 숙련된 스크립터 모두가 정밀하고 효율적으로 솔루션을 조정할 수 있도록 합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
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

관련 문장 - PowerShell File