PowerShell을 사용하여 경로에서 파일 이름 추출하는 방법

  1. PowerShell에서 경로에서 파일 이름을 추출하기 위해 Split-Path Cmdlet 사용하기
  2. PowerShell에서 경로에서 파일 이름을 추출하기 위해 .NET의 Path 클래스 메소드 사용하기
  3. PowerShell에서 경로에서 파일 이름을 추출하기 위해 Get-ItemGet-ChildItem Cmdlet 사용하기
  4. PowerShell에서 경로에서 파일 이름 추출하기 위해 정규 표현식 사용하기
  5. PowerShell에서 경로에서 파일 이름 추출하기 위해 문자열 조작 사용하기
  6. PowerShell에서 경로에서 파일 이름 추출하기 위해 System.IO.FileInfo 클래스 사용하기
  7. 결론
PowerShell을 사용하여 경로에서 파일 이름 추출하는 방법

파일 경로는 시스템에서 파일의 위치를 알려줍니다. PowerShell에서 파일을 작업할 때, 경로에서 파일 이름만 가져와야 할 수도 있습니다.

PowerShell에서는 파일의 경로를 가져오는 다양한 방법이 있습니다. 이 튜토리얼에서는 PowerShell을 사용하여 파일 경로에서 파일 이름을 추출하는 방법을 배웁니다.

PowerShell에서 경로에서 파일 이름을 추출하기 위해 Split-Path Cmdlet 사용하기

PowerShell에서 Split-Path cmdlet은 주어진 경로의 특정 세그먼트를 분리하는 데 유용한 도구입니다. 상위 폴더, 하위 폴더, 파일 이름 또는 파일 확장자 등을 대상으로 하여 이 요소들을 표시할 수 있습니다.

확장자와 함께 파일 이름 추출하기

경로에서 파일 이름과 그 확장자를 캡처하려면 -Leaf 매개변수와 함께 Split-Path 명령을 사용할 수 있습니다:

Split-Path C:\pc\test_folder\hello.txt -Leaf

출력:

hello.txt

확장자 없는 파일 이름 얻기

확장자 없이 파일 이름이 필요한 경우 -LeafBase 매개변수가 유용합니다. 그러나 이 매개변수는 PowerShell 6.0 이상에서 사용할 수 있다는 점에 유의해야 합니다:

Split-Path C:\pc\test_folder\hello.txt -LeafBase

출력:

hello

PowerShell에서 경로에서 파일 이름을 추출하기 위해 .NET의 Path 클래스 메소드 사용하기

.NET에서 Path 클래스는 지정된 경로에서 파일 이름과 확장자를 쉽게 추출할 수 있는 유용한 메소드를 제공합니다. 이 기능을 예제와 함께 살펴보겠습니다.

GetFileName을 사용하여 확장자와 함께 파일 이름 추출하기

Path 클래스의 GetFileName 메소드는 주어진 경로에서 파일 이름과 그 확장자를 검색합니다. 경로 C:\pc\test_folder\hello.txt를 사용하여 이를 시연해 보겠습니다:

[System.IO.Path]::GetFileName('C:\pc\test_folder\hello.txt')

출력:

hello.txt

GetFileNameWithoutExtension을 사용하여 확장자 없는 파일 이름 얻기

확장자 없이 파일 이름만 추출하려면 GetFileNameWithoutExtension 메소드를 사용할 수 있습니다. 이는 파일 유형을 제외한 파일 자체의 이름이 필요할 때 유용합니다:

[System.IO.Path]::GetFileNameWithoutExtension('C:\pc\test_folder\hello.txt')

출력:

hello

PowerShell에서 경로에서 파일 이름을 추출하기 위해 Get-ItemGet-ChildItem Cmdlet 사용하기

PowerShell에서 Get-ItemGet-ChildItem cmdlet은 파일 및 디렉터리를 작업할 때 중요한 도구로, 주어진 위치의 항목에 대한 특정 정보를 추출할 수 있습니다.

주어진 경로에서 파일 이름을 추출하는 방법을 살펴보겠습니다. 확장자 유무에 따라 변형도 포함됩니다.

Get-Item을 사용하여 확장자와 함께 파일 이름 추출하기

Get-Item cmdlet은 지정된 항목에 대한 상세 정보를 검색하며, 여기에는 디렉터리, 모드, 마지막 수정 시간, 길이 및 이름이 포함됩니다. 확장자와 함께 파일 이름을 추출하려면 Get-Item과 함께 .Name 속성을 사용할 수 있습니다.

특정 경로 C:\pc\test_folder\hello.txt를 사용하여 이를 시연해 보겠습니다:

(Get-Item C:\pc\test_folder\hello.txt).Name

출력:

hello.txt

Get-Item을 사용하여 확장자 없는 파일 이름 얻기

확장자 없는 파일 이름만 추출하려면 Get-Item과 함께 .BaseName 속성을 활용할 수 있습니다. 이는 제공된 경로에서 파일 이름만 분리할 수 있게 해줍니다:

(Get-Item C:\pc\test_folder\hello.txt).BaseName

출력:

hello

Get-ChildItem과 함께 방법 적용하기

이 접근 방식은 지정된 위치의 항목에 대한 정보를 검색하는 Get-ChildItem cmdlet을 사용할 때도 적용됩니다. 확장자 유무에 따라 파일 이름을 추출하는 방법은 다음과 같습니다:

(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName

출력:

hello.txt
hello

PowerShell에서 경로에서 파일 이름 추출하기 위해 정규 표현식 사용하기

정규 표현식도 PowerShell에서 경로에서 파일 이름을 추출하는 데 사용할 수 있습니다. .NET의 Regex 클래스는 패턴 매칭 및 조작을 위한 강력한 도구를 제공합니다.

이것이 어떻게 작동하는지 살펴보겠습니다:

# Define the path
$path = "C:\pc\test_folder\hello.txt"

# Use regular expression to extract the filename
$filename = [System.Text.RegularExpressions.Regex]::Match($path, '\\([^\\]+)$').Groups[1].Value
$filename

출력:

hello.txt

이 예제에서는 마지막 백슬래시 이후의 텍스트를 캡처하기 위해 정규 표현식을 사용합니다. 이 텍스트는 확장자와 함께 파일 이름을 나타냅니다.

정규 표현식 '\\([^\\]+)$'는 다음과 같이 구성되어 있습니다:

  • \\: 경로의 백슬래시와 일치합니다.
  • ([^\\]+): 캡처 그룹 내에서 백슬래시가 아닌 하나 이상의 문자를 캡처합니다(확장자를 포함한 파일 이름 나타냄).
  • $: 문자열의 끝에서 일치가 발생해야 함을 지정합니다.

Regex 클래스의 Match 메소드를 사용하여 경로에 정규 표현식을 적용합니다.

결과로 얻는 일치는 확장자와 함께 파일 이름을 포함합니다. Groups[1].Value를 통해 원하는 파일 이름을 추출합니다.

PowerShell에서 경로에서 파일 이름 추출하기 위해 문자열 조작 사용하기

문자열 조작 기법도 경로에서 파일 이름을 추출하는 데 사용할 수 있습니다. 예를 들어, LastIndexOf 메소드를 사용하여 마지막 백슬래시의 마지막 발생을 찾고 그에 따라 파일 이름을 추출할 수 있습니다.

# Define the path
$path = "C:\pc\test_folder\hello.txt"

# Find the index of the last backslash
$lastBackslashIndex = $path.LastIndexOf("\") + 1

# Extract the filename
$filename = $path.Substring($lastBackslashIndex)
$filename

출력:

hello.txt

여기에서 우리는 경로에서 마지막 백슬래시(\)의 마지막 발생의 인덱스를 확인하기 위해 LastIndexOf 메소드를 사용하여 파일 이름이 시작되는 위치를 식별합니다.

  • $lastBackslashIndex = $path.LastIndexOf("\") + 1: 이 줄은 마지막 백슬래시의 인덱스를 계산하고 1을 더해 백슬래시 다음에서 문자를 추출하도록 합니다.

다음으로, Substring 메소드를 사용하여 마지막 백슬래시 다음의 인덱스에서 시작하여 문자열의 끝까지 파일 이름을 추출합니다.

  • $filename = $path.Substring($lastBackslashIndex): 여기에서 계산된 인덱스를 사용하여 Substring으로 파일 이름을 추출합니다.

PowerShell에서 경로에서 파일 이름 추출하기 위해 System.IO.FileInfo 클래스 사용하기

System.IO.FileInfo 클래스는 파일 이름을 포함한 파일 정보에 접근할 수 있는 속성을 제공합니다. FileInfo 객체를 생성한 후, Name 속성에 접근하여 파일 이름을 얻을 수 있습니다.

# Define the path
$path = "C:\pc\test_folder\hello.txt"

# Create a FileInfo object
$fileInfo = New-Object System.IO.FileInfo $path

# Extract the filename
$filename = $fileInfo.Name
$filename

출력:

hello.txt

이 예제에서는 New-ObjectSystem.IO.FileInfo 클래스를 사용하여 FileInfo 객체를 생성하고, 이를 통해 파일 관련 속성과 메소드에 접근합니다.

  • $fileInfo = New-Object System.IO.FileInfo $path: 이 줄은 제공된 경로를 기반으로 FileInfo 객체를 생성합니다.

다음으로, FileInfo 객체의 Name 속성을 활용하여 파일 이름을 추출합니다.

  • $filename = $fileInfo.Name: 여기에서 FileInfo 객체의 Name 속성을 통해 파일 이름을 가져옵니다.

결론

이 튜토리얼에서는 PowerShell에서 경로에서 파일 이름을 추출하는 다양한 방법을 탐구했습니다. Split-Path와 같은 내장 cmdlet을 사용하여 정규 표현식 및 문자열 조작을 활용하는 등, 특정 요구 사항에 따라 선택할 수 있는 다양한 옵션이 있습니다.

이러한 기술을 이해하면 파일 경로를 처리하고 PowerShell에서 필수 파일 정보를 추출하는 데 능숙해질 것입니다. 내장 cmdlet의 단순함을 선호하든 정규 표현식의 유연성을 선호하든, PowerShell은 효과적인 파일 조작을 위한 강력한 도구 세트를 제공합니다.

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

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell File