Expand Placeholder String
Zuletzt geändert: 14.03.2026 05:56

Expand-PlaceholderString #

ÜBERSICHT #

Ersetzt Platzhalter-Tokens in einem Template-String durch Variablenwerte, mit Unterstützung für Bedingungen, Formatierung und System-Variablen.

SYNTAX #

Expand-PlaceholderString [-Template] <string> [[-Variables] <hashtable>] [[-Delimiter] <char>]
    [-SkipUnknown] [[-Culture] <System.Globalization.CultureInfo>] [<CommonParameters>]

BESCHREIBUNG #

Portierung der Delphi-Engine ReplaceVars (elString.pas) und TCnFormatNamedStrings.Get nach PowerShell. Zeichenweise Verarbeitung mit Stack-basierten verschachtelten Bedingungen.

Tokens werden durch Delimiter-Zeichen begrenzt (Standard: %). Unterstützt:

  • Einfache Variablenersetzung: %Name%
  • System-Variablen: %SYSTEM.USERNAME%, %SYSTEM.TODAY%, %YYYY% etc.
  • Bedingte Blöcke: %?Variable%…%?|%…%?%
  • Vergleichsoperatoren: %?Var=Wert%, %?Var^Prefix%, %?Var$Suffix%, %?Var*Enthält%, %?Var#Liste%
  • Format-Optionen: %FDdd.mm.yyyy:Datum%, %FF#,##0.00:Preis%, %L20:Name%
  • Escaped Delimiter: %% ergibt ein einzelnes %
  • Rekursive Expansion: %!Ref% löst den Wert von Ref nochmals auf

PARAMETER #

-Template #

Type: string

Der Template-String mit Platzhaltern.

-Variables #

Type: hashtable
Default: @{}

Hashtable mit Variablennamen und ihren Werten.

-Delimiter #

Type: char
Default: '%'

Das Begrenzungszeichen für Platzhalter. Standard: ‘%’.

-SkipUnknown #

Type: switch

Wenn gesetzt, bleiben unbekannte Platzhalter als %name% im Ergebnis erhalten. Ohne diesen Switch werden unbekannte Platzhalter durch Leerstring ersetzt.

-Culture #

Type: System.Globalization.CultureInfo
Default: $null

Die Kultur für Datums- und Zahlenformatierung. Standard: de-DE.

AUSGABEN #

string

BEISPIELE #

Expand-PlaceholderString -Template 'Hallo %Name%!' -Variables @{Name='Welt'}
# Gibt 'Hallo Welt!' zurück
$vars = @{KopfNummer='20212869'; Datum=[datetime]'2026-02-16'}
Expand-PlaceholderString -Template 'Rechnung %KopfNummer% vom %FDdd.mm.yyyy:Datum%' -Variables $vars
# Gibt 'Rechnung 20212869 vom 16.02.2026' zurück
Expand-PlaceholderString -Template '%?HasDiscount%Rabatt: %Discount%%?|%Kein Rabatt%?%' -Variables @{HasDiscount='1'; Discount='10%'}
# Gibt 'Rabatt: 10%' zurück