경로에서 파일 이름 추출 Files \

아래 경로에서 파일 이름을 추출하고 싶습니다.

D : \ 서버 \ 사용자 \ CUST \ MEA \ Data \ In \ Files \ CORRECTED \ 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


답변

사용하다 :

[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

Basic-English-Grammar-1

$filepath.Name

Basic-English-Grammar-1.pdf


답변

이렇게 원하는 결과를 얻을 수 있습니다.

$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”을 사용하여 파일 이름 만 가져올 수도 있습니다.


답변

Get-ChildItem "D:\Server\User\CUST\MEA\Data\In\Files\CORRECTED\CUST_MEAFile.csv"
|Select-Object -ExpandProperty Name


답변

.Net을 사용하는 위의 답변을 완료하십시오.

이 코드에서 경로는 %1인수에 저장됩니다 (이스케이프 처리 된 따옴표 아래 레지스트리에 기록됨 \"%1\"). 그것을 검색하려면 $arg(inbuilt arg) 가 필요합니다 . 주위의 인용문을 잊지 마십시오 $FilePath.

# 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 Extension:
$fileNameOnly = [System.IO.Path]::GetFileNameWithoutExtension("$FilePath")
Write-Host "fileNameOnly :" $fileNameOnly

# Get the Extension:
$fileExtensionOnly = [System.IO.Path]::GetExtension("$FilePath")
Write-Host "fileExtensionOnly :" $fileExtensionOnly


답변

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