Trim - Ausgabe passt nicht
Hallo Leute,
evtl. kann mir mal jemand auf die Sprünge helfen. Irgendwie funktioniert das TRIM nicht so, wie ich es benötige bzw. mir vorstelle und ich verstehe aktuell nicht, warum das so ist.
Hier mal mein kleiner Codeschnipsel:
Als Rückgabewert von $GroupShort würde ich jetzt erwarten:
KBD-LB1-VERWALTUNG-RW
Es wird aber BD-LB1-VERWALTUNG-RW ausgegeben.
Ersetze ich "KBD" durch was anderes - meinetwegen ABX - dann stimmt die Ausgabe. Aber mit dem "K" gibts irgendwie Probleme.
Warum?
Vorab, vielen Dank!
VG
KangarooJack
evtl. kann mir mal jemand auf die Sprünge helfen. Irgendwie funktioniert das TRIM nicht so, wie ich es benötige bzw. mir vorstelle und ich verstehe aktuell nicht, warum das so ist.
Hier mal mein kleiner Codeschnipsel:
clear
$GroupName = "zzO-K010-MP-FEUER-RV-KBD*"
$GroupLine = "zzO-K010-MP-FEUER-RV-KBD-LB1-VERWALTUNG-RW"
Write-Host "GroupName:" $GroupName
Write-Host "GroupLine:" $GroupLine
if ($GroupName -like "zzO-K010-MP-FEUER-RV-*") {
$GroupShort = $GroupLine.TrimStart("zzO-K010-MP-FEUER-RV-")
Write-Host "GroupShort:" $GroupShort
}
Als Rückgabewert von $GroupShort würde ich jetzt erwarten:
KBD-LB1-VERWALTUNG-RW
Es wird aber BD-LB1-VERWALTUNG-RW ausgegeben.
Ersetze ich "KBD" durch was anderes - meinetwegen ABX - dann stimmt die Ausgabe. Aber mit dem "K" gibts irgendwie Probleme.
Warum?
Vorab, vielen Dank!
VG
KangarooJack
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 42308676642
Url: https://administrator.de/contentid/42308676642
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Ersetze ich "KBD" durch was anderes - meinetwegen ABX - dann stimmt die Ausgabe. Aber mit dem "K" gibts irgendwie Probleme.
Warum?
Weil das "K" mit in der Char-Liste enthalten ist welches du übergeben hast (zzO-K010-MP-FEUER-RV-) ...Warum?
Hier wird nicht der String als ganzes ausgewertet sondern jedes Zeichen aus dem String für sich, und da "B" nicht darin enthalten ist endet die Entfernung dort. Da du einen String mit mehreren Zeichen übergibst interpretiert das TrimStart als [CHAR[]] Array also ein Array aus einzelnen Zeichen
RTFM
https://learn.microsoft.com/de-de/dotnet/api/system.string.trimstart?vie ...
Entfernt alle führenden Vorkommen der Zeichen im angegebenen Array aus der aktuellen Zeichenfolge.
Das macht bspw. das was du suchst
$GroupShort = $groupline -replace '^zzO-K010-MP-FEUER-RV-'
Das ^ Bedeutet : Ersetze vom Anfang des Strings aus.
Sid.