programing

경로에서 파일 이름 추출

powerit 2023. 4. 8. 09:50
반응형

경로에서 파일 이름 추출

아래 경로에서 파일 이름을 추출합니다.

D:\Server\사용자\CUST\MEA\Data\입력\파일\수정필 \CUST_MEAFile.csv

이 코드는 파일명을 얻기 위해 작성했습니다.폴더 레벨이 변경되지 않는 한 정상적으로 동작합니다.그러나 폴더 레벨이 변경된 경우 이 코드를 다시 작성해야 합니다.폴더 레벨에 관계없이 코드가 항상 파일명을 추출할 수 있는 등 유연하게 할 수 있는 방법을 찾고 있습니다.

($outputFile).split('\')[9].substring(0)

확장자를 포함해도 문제가 없다면 원하는 대로 해야 합니다.

$outputPath = "D:\Server\User\CUST\MEA\Data\In\Files\CORRECTED\CUST_MEAFile.csv"
$outputFile = Split-Path $outputPath -leaf

.NET 사용:

[System.IO.Path]::GetFileName("c:\foo.txt")돌아온다foo.txt.[System.IO.Path]::GetFileNameWithoutExtension("c:\foo.txt")돌아온다foo

Get-ChildItem에서 BaseName을 사용하면 파일 이름이 표시되고 Name을 사용하면 파일 이름과 확장자가 표시됩니다.

$filepath = Get-ChildItem "E:\Test\Basic-English-Grammar-1.pdf"

$filepath.BaseName

출력:

기본 영어 문법 1


$filepath.Name

출력:

기본 영어 문법 1.pdf

와일드카드를 사용하여 파일을 검색하여 파일 이름을 가져옵니다.

Resolve-Path "Package.1.0.191.*.zip" | Split-Path -leaf
$(Split-Path "D:\Server\User\CUST\MEA\Data\In\Files\CORRECTED\CUST_MEAFile.csv" -leaf)
Get-ChildItem "D:\Server\User\CUST\MEA\Data\In\Files\CORRECTED\CUST_MEAFile.csv"
|Select-Object -ExpandProperty Name

다음과 같이 시험해 보십시오.

[System.IO.FileInfo]$path = "D:\Server\User\CUST\MEA\Data\In\Files\CORRECTED\CUST_MEAFile.csv"
# Returns name and extension
$path.Name
# Returns just name
$path.BaseName

이렇게 하면 원하는 결과를 얻을 수 있어요.

$file = "D:\Server\User\CUST\MEA\Data\In\Files\CORRECTED\CUST_MEAFile.csv"
$a = $file.Split("\")
$index = $a.count - 1
$a.GetValue($index)

Get-ChildItem을 사용하여 "fullname"을 가져올 경우 "name"을 사용하여 파일 이름만 가져올 수도 있습니다.

를 사용하는 angulsen의 답변을 완성하기 위해서입니다.그물.

이 코드에서는 패스는 다음 코드에 저장됩니다.%1인수(탈락된 따옴표 아래 레지스트리에 기재되어 있습니다.\"%1\"를 취득하기 위해서는,$arg(내장 arg).에 대한 인용문을 잊지 마세요.

# Get the file path:
$FilePath = $args
Write-Host "FilePath: " $FilePath

# Get the complete file name:
$file_name_complete = [System.IO.Path]::GetFileName("$FilePath")
Write-Host "fileNameFull :" $file_name_complete

# Get file name without the extension:
$fileNameOnly = [System.IO.Path]::GetFileNameWithoutExtension("$FilePath")
Write-Host "fileNameOnly :" $fileNameOnly

# Get the file extension:
$fileExtensionOnly = [System.IO.Path]::GetExtension("$FilePath")
Write-Host "fileExtensionOnly :" $fileExtensionOnly
$file = Get-Item -Path "c:/foo/foobar.txt"
$file.Name

상대 경로와 절대 경로 모두에서 작동

언급URL : https://stackoverflow.com/questions/35813186/extract-the-filename-from-a-path

반응형