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

파일 경로는 시스템에서 파일의 위치를 알려줍니다. 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-Item
및 Get-ChildItem
Cmdlet 사용하기
PowerShell에서 Get-Item
및 Get-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-Object
와 System.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은 효과적인 파일 조작을 위한 강력한 도구 세트를 제공합니다.