2017-05-11 4 views
3

Ich möchte in den Text nach dem letzten Backslash aus meiner Textdatei lesen. Zur Zeit habe ich:Lesen Sie Text nach dem letzten Backslash

$data=Get-Content "C:\temp\users.txt" 

Die users.txt Datei enthält Pfad von Benutzer Home-Verzeichnisse

\\myserver.home.com\users\user1.test 

Wie kann ich den Benutzer auswählen Konto (user1.test) Name am Ende der Zeile Text, damit ich es als Variable verwenden kann?

Antwort

3

Sie können einen einfachen regex verwenden alles bis zu entfernen, einschließlich dem letzten Slash:

$user = $data -replace '.*\\' 
+1

Dank Martin, hat super funktioniert , und ich habe jetzt ein paar Möglichkeiten, die gleichen Ergebnisse zu erzielen: –

3

Sie können Split und [-1] die Zeichenfolge nach dem letzten Backslash zu erhalten:

$data = Get-Content "C:\temp\users.txt" 
$file = ($data -split '\\')[-1] 

Dies verwendet zwei umgekehrte Schrägstriche, da ein umgekehrter Schrägstrich ein Regex-Sonderzeichen (Escape) ist, so dass der erste Schrägstrich der zweiten folgt.

+1

Danke, Mark, brilliant gearbeitet –

5

Da Sie mit Dateipfade zu tun haben, können Sie GetFileName benutzen.

$data=Get-Content "C:\temp\users.txt" 
$name=[System.IO.Path]::GetFileName($data) 
4

$HomeDirArray = Get-Content "C:\temp\users.txt" | Split-Path -Leaf finden Sie eine Reihe geben, die durch den Einsatz von ForEach laufen werden können (zB ForEach ($User in $HomeDirArray) {...}

Verwandte Themen