wake-up-neo.com

Extrahieren Sie den Dateinamen aus einem Pfad

Ich möchte den Dateinamen aus dem folgenden Pfad extrahieren:

D:\Server\Benutzer\CUST\MEA\Data\In\Files\CORRECTED\CUST_MEAFile.csv

Jetzt habe ich diesen Code geschrieben, um den Dateinamen zu erhalten. Dies funktioniert einwandfrei, solange sich die Ordnerebene nicht ändert. Falls jedoch die Ordnerebene geändert wurde, muss dieser Code neu geschrieben werden. Ich suche einen Weg, um es flexibler zu machen, wie der Code kann immer Dateinamen unabhängig von der Ordnerebene extrahieren.

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

Wenn Sie mit der Erweiterung einverstanden sind, sollte dies tun, was Sie wollen.

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

Verwenden Sie . Net :

[System.IO.Path]::GetFileName("c:\foo.txt") gibt foo.txt zurück. [System.IO.Path]::GetFileNameWithoutExtension("c:\foo.txt") gibt foo zurück

35
angularsen

Bei Verwendung des Basisnamens in Get-ChildItem wird der Name der Datei und bei Verwendung von Name der Dateiname mit der Erweiterung angezeigt.

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

$filepath.BaseName

Basic-English-Grammar-1

$filepath.Name

Basic-English-Grammar-1.pdf
9
Sudhir Tharayil

Sie könnten das gewünschte Ergebnis erzielen.

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

Wenn Sie "Get-ChildItem" verwenden, um den "vollständigen Namen" abzurufen, können Sie auch "name" verwenden, um nur den Namen der Datei abzurufen.

3
David

Um die obige Antwort zu vervollständigen, verwenden Sie .Net.

In diesem Code ist der Pfad im %1 Argument (das in der Registrierung unter Anführungszeichen geschrieben ist, die maskiert werden: \"%1\"). Um es abzurufen, benötigen wir die $arg (eingebautes Argument). Vergiss nicht das Zitat um $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
1
J. Does

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

1
Ian Kemp

$ (Split-Path "D:\Server\Benutzer\CUST\MEA\Daten\In\Files\CORRECTED\CUST_MEAFile.csv" -Blatt)

1
Iain