Wissen Sie, dass Sie bestimmen können, ob eine Zeichenfolge mit einem bestimmten Zeichen endet oder in PowerShell damit beginnt? Thomas Rayner teilte zuvor auf CANITPRO.NET mit, wie einfach es ist, mit regulären Ausdrücken oder einfacher mit Regex umzugehen.

Vielen Dank für die Übersetzung unseres MSP,
Lev Bulanov .
Betrachten Sie die folgenden Beispiele:
'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false
In den ersten beiden Beispielen prüft das Skript, ob die Zeile mit einem Backslash endet. In den letzten beiden Beispielen überprüft das Skript die Zeichenfolge, um festzustellen, ob sie mit einem Schrägstrich beginnt.
Das Regex-Muster für die ersten beiden sieht wie folgt aus: "\\ $". Was bedeutet das? Nun, der erste Teil \\ bedeutet "Backslash" (weil \ ein Escape-Zeichen ist und wir im Grunde genommen dem Escape-Zeichen entkommen. Der letzte Teil von $ ist das Zeilenende-Signal. Tatsächlich haben wir "überhaupt nichts, wo das letzte." Was auf dem Spiel steht, ist der Backslash “, und genau das suchen wir.
In den folgenden zwei Beispielen habe ich einfach \\ an den Anfang der Zeile verschoben und mit ^ begonnen, nicht mit $, da ^ das Signal zum Starten der Zeile ist.
Jetzt können Sie Dinge tun wie:
$dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\'
Hier prüft das Skript, ob die 'Bären'-Zeile mit einem Backslash endet, und wenn nicht, werde ich sie hinzufügen.