none
Ersetzen einer Zeichenkette in einer Textdatei RRS feed

  • Frage

  • Hallo zusammen,

    ich habe folgendes Problem.

    Ich habe in einer Textdatei diverse Zeilen die auskommentiert sind und welche die nicht auskommentiert sind.

    Beispiel:

    ;Oracle 11 g R2 / Uniface 9.6 Start -----------------------------------------
    ORA = U7.0
    usys$ora_params dpa,dhfr,dri,af 50,ss 10,fa,oc 100,dc,dsf,en,dpc,u4_compatibility,nclob_ext
    ;Oracle 11 g R2 / Uniface 9.6 Ende ------------------------------------------
    ;ORA 11 Start ---------------------------------------------------------------

    Jetzt möchte ich zum Beispiel die dritte Zeile auskommentieren. Hierzu habe ich die datei eingelesen und wollte die Teilzeichenkette "usys$ora_paams" mit replace auskommentieren. Leider stolpere ich immer über das $ Zeichen im String.
    Ich habe es schon mit`$ versucht, leider komme ich auch hier nicht zum richtigen Ergebnis. Hier nochmal mein bisheriges Skript:

     $ASNFile_Name = "D:\Test\test.txt"
     (Get-Content $ASNFile_Name) | Foreach-Object {$_ -replace "usys$ora_params", ";usys$ora_params"} | Set-Content $ASNFile_Name

    oder auch so:

     $ASNFile_Name = "D:\Test\test.txt"
     (Get-Content $ASNFile_Name) | Foreach-Object {$_ -replace "usys`$ora_params", ";usys`$ora_params"} | Set-Content $ASNFile_Name

    Beide Ansätze bringen leider nicht das gewünschte Ergebnis.

    kann mir jemand helfen?

    VG

    Heiko

    Donnerstag, 6. November 2014 13:05

Antworten

  • Hallo Heiko!

    Hier greifen 2 Syntaxen ineinander, die man beide kennen sollte!
    Auch das was die TechNet Deployment Hotline da schreibt, Funktioniert deshalb nicht., weil man hier beides beachten muss!

    1.)
    Man sollte sich mit den Regeln zur Verwendung einzelner und doppelter
    Anführungszeichen in Windows PowerShell vertraut machen. ;-)

    Zeichenfolgen können in einfache gerade (') oder
    doppelte gerade Anführungszeichen (") eingeschlossen werden.
    Diese erzeugen in der PowerShell ein unterschiedliches verhalten.

    Lies das hier:
    http://www.colorconsole.de/PS_Windows/de/about_Quoting_Rules.htm
    oder wenn die PowerShell Hilfe Installiert ist:
    Get-Help about_Quoting_Rules # (Möglicherweise in Englischer Sprache)
    Oder wenn die Hilfe nicht Installiert ist die Hilfe Online abrufen
    Get-Help about_Quoting_Rules -Online # (Möglicherweise in Englischer Sprache)

    2.)
    Der oprerator –replace benutzt Reguläre Ausdrücke (RegEx) als Suchmuster!
    Hier musst du dich mit der RegEx Syntax auskennen!

    PowerShell Text Verarbeitung, die Wahl der Mittel

    Text kann man in PowerShell mit “Regulären Ausdrücken” oder Englisch: Regular Expressions bearbeiten.
    Weil der Name “Regular Expressions” etwas unhandlich ist, werden diese Kurz auch “RegEx” genannt.

    Reguläre Ausdrücke (RegEx) selber nur Text, dieser Text erzeugt ein Suchmuster, jeder Buchstabe in dem Text wird einzeln verglichen.
    RegEx benutzen einzelne oder zusammengesetzte Zeichen (Buchstaben) um das verhalten für das Suchmuster zu steuern, deshalb spreche ich im Folgen bei dem Suchmuster-Text von RegEx, von einer Text-Zeichenfolge.  
    Dieses Suchmuster (RegEx) kann als Filterkriterium bei der Suche in einem anderen Text verwendet werden, Text wird mit dem Muster des regulären Ausdrucks abgeglichen.

    PowerShell bietet von sich aus einige Operatoren, die Text Verarbeitung erledigen.
    Hier muss man wissen, welche Operatoren RegEx benutzen und welche Operatoren eine andere Technik benutzen.

    Die folgenden PowerShell Operatoren benutzen Regular Expressions:

    -Match
    -NotMatch
    -Replace

    Das Like verwendet den Stern * als Platzhalter (Joker-Zeichen) und nicht RegEx !

    -Like
    -NotLike

    Beispiel:

    "Windows PowerShell" -like "*shell" #ergibt $True

    Hierzu sollte man sich das PowerShell Thema der Vergleichs-Operatoren durchlesen!
    Get-Help about_Comparison_Operators

    Nachteile von RegEx:
    Wenn ein Text (Sonder-) Zeichen enthält, die in den RegEx auch eine Sonderfunktion haben, wird die Erstellung eines geeigneten RegEx Filters zu einer kryptischen Herausforderung.
    Ebenso wollen wir hauptsächlich keine Text-Muster suchen, sondern einzelne Zeichen.
    Dafür ist RegEx überdimensioniert und kostet für diesen Zweck zu viel Rechenzeit.

    Deshalb nutze ich gerne die “einfachen” Methoden, die uns die .NET Klasse [String] bietet.

    Die .NET Klasse System.String in der PowerShell

    Jeder Text in der PowerShell ist ein Objekt von der .NET Klasse (Typ) System.String.
    Die Methoden die uns diese Klasse bietet, kann man mit einem einfachen Aufruf von Get-Member herausbekommen.

    "Hallo" | Get-Member

    Oder man schaut sich die gute Dokumentation der System.String Klasse im Microsoft Developer Network (MSDN) an.
    http://msdn.microsoft.com/de-de/library/system.string%28v=vs.110%29.aspx

    Für uns sind die Methoden von Interesse!

    Wer Interesse hat, einige String Methoden in der PowerShell in Aktion zu sehen, sollte sich den folgenden Microsoft Artikel ansehen:

    Powershell Tip oft he week: The String’s the Thing
    http://technet.microsoft.com/en-us/library/ee692804.aspx

    Für unseren Zwecke ist die System.String.Replace() Methode interessant.
    Die Methode von der Klasse System.String.Replace() beachteten die Groß- und Kleinschreibung!!!!!!!!

    Reguläre Ausdrücke (Regular Expression)

    Bei Regular Expression (RegEx) muss man sich  mit den Steuer- und  Escape-Zeichen in Regulären ausdrücken auskennen.

    Reguläre Ausdrücke (RegEx) sind wie gesagt Texzeichenfolgen die ein Suchmuster darstellen.
    Innerhalb dieses Textes werden einige Zeichen zum steuern des Verhaltes benutzt.
    Die Zeichen die eine Funktion in der RegEx-Text-Zeichenfolge haben nennt man auch Sonderzeichen.
    (\, *, +, ?, |, {, [, (,), ^, $,., # und Leerzeichen)

    Der zurück gelehnte Schrägstrich \ (Englisch: ‚backslash‘)  in einem regulären Ausdruck (RegEx) ist so ein Sonderzeichen. Der backslash hat die Funktioniert als Maskierungszeichen in RegEx ausdrücken.

    Maskierungszeichen oder Fluchtsymbol, (Englisch: ‚escape character‘ kurz auch nur ‚escape‘ genannt), ist ein bestimmtes Zeichen, das verhindert, dass das nachfolgende Zeichen vom einem regulären Ausdruck als Funktionszeichen erkannt wird.
    Das Plus Zeichen + ist in RegEx auch ein Sonderzeichen, A+ z.B. bedeutet, dass der Buchstabe A einmal oder mehrmals an dieser Stelle vorkommen kann (Groß- und Kleinschreibung wird hier beachtet!).
    Wenn man Plus Zeichen aber selbst im Text suchen möchte, so muss man die Sonderfunktion des Plus Zeichen + abschalten.
    Dies macht ein vorangestellte backslash.
    Im  folgenden Beispiel wird das Plus Zeichen selbst gesucht und die Sonderfunktion ist durch den backslash ‚Maskiert‘:
    A\+

    Wenn man in RegEx die Funktion des backslash selbst abschalten will, so muss der backslash mit dem backslash Maskiert werden. Etwa so: \\.

    Es gibt in regulären Ausdrücken (RegEx) noch viel mehr Sonderzeichen, da muss man sich mit der Syntax für reguläre Ausdrücke beschäftigen.
    Eine gute Übersicht der .NET RegEx in Deutsch, gibt es hier im Microsoft Developer Network:

    Sprachelemente für reguläre Ausdrücke – Kurzübersicht
    http://msdn.microsoft.com/de-de/library/az24scfc%28v=vs.110%29.aspx

    Alles auf einem Din A4-Blatt findet man in Englisch hier:

    Regular Expressions Cheat Sheet by DaveChild
    http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
    (dort den Download Link suchen!)


    Um die meisten Sonderzeichen alle auf einmal zu Maskieren benutzt man die Methode Escape() von der  .NET Klasse System.Text.RegularExpressions.RegEx.

    Ich persönlich bin kein RegEx Experte.


    Es gibt im Internet sehr viel gute Schnellanleitungen für Regular Expression (RegEx).
    Hier ist eine gute in Deutsch:

    Schritt-für-Schritt zu eigenen Regulären Ausdrücken
    http://www.regenechsen.de/phpwcms/index.php?regex_allg

    Tutorial Reguläre Ausdrücke
    https://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausdruecke

    Wie man mit PowerShell Reguläre Ausdrücke macht hat Tobias Weltner in Englisch hier veröffentlicht:
    Chapter 13. Text and Regular Expressions
    http://powershell.com/cs/blogs/ebookv2/archive/2012/03/20/chapter-13-text-and-regular-expressions.aspx

    Dein Code müsste so laufen (Beispiel):

    $Text = @'
    ;Oracle 11 g R2 / Uniface 9.6 Start -----------------------------------------
    ORA = U7.0
    usys$ora_params dpa,dhfr,dri,af 50,ss 10,fa,oc 100,dc,dsf,en,dpc,u4_compatibility,nclob_ext
    ;Oracle 11 g R2 / Uniface 9.6 Ende ------------------------------------------
    ;ORA 11 Start ---------------------------------------------------------------
    '@
    
    
    ############## Beispiel 1 mit doppelten Anführungzeichen
     
     # mit doppelten Anführungzeichen muss das $ dollarzeichen in
     # der PowerShell maskiert werde UND in der Regular Expression!
     $Text -split "`n" | ForEach-Object {
    
      # Sonderzeichen in der Regular Expression Maskieren
      $SuchText = [System.Text.RegularExpressions.RegEx]::Escape("usys`$ora_params")
      $_ -replace $SuchText, ";usys`$ora_params"
    }
    
    ############## Beispiel 2 mit einfachen Anführungzeichen
    
     # mit einfachen Anführungzeichen muss das $ dollarzeichen nicht in
     # der PowerShell maskiert werde SONDERN NUR in der Regular Expression!
     $Text -split "`n" | ForEach-Object {
    
      # Sonderzeichen in der Regular Expression Maskieren
      $SuchText = [System.Text.RegularExpressions.RegEx]::Escape('usys$ora_params')
      $_ -replace $SuchText, ';usys$ora_params'
    }



    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Donnerstag, 6. November 2014 14:58
  • Hallo Heiko,

    die Antwort von Peter ist seehr ausführlich, tl;dr ;)
    Das mit den RegEx ist richtig, hätte man durch die String Funktionen lösen können, die ebenfalls kein RegEx verwenden:

    $string.Replace("usys$ora_params", ";usys$ora_params")

    Gruß
    Lennart

    • Als Antwort markiert Heiko Probst Freitag, 7. November 2014 12:07
    Freitag, 7. November 2014 08:45

Alle Antworten

  • Hallo,

    das Sonderzeichen muss durch das Escape-Zeichen "\" gekennzeichnet werden. Damit sollte besagte Zeile so aussehen:

    $ASNFile_Name = "D:\Test\test.txt"
    (Get-Content $ASNFile_Name) | Foreach-Object {$_ -replace "usys\$ora_params", ";usys\$ora_params"} | Set-Content $ASNFile_Name

    Viele Grüße,     
    Tobias Heilig
    TechNet Deployment Hotline    

    TechNet Deployment-Hotline    

    Disclaimer:        

            Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar        nicht oder nur sehr zeitverzögert antworten können.        
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg            über die TechNet Deployment Hotline:                 http://technet.microsoft.com/de-de/ff959330         

    TechNet Deployment-Hotline
    Telefon: 0800-6087338*
    Email: msdn-technet-support@escde.net

    * 16:00 – 18:00 Uhr (außer an bundeseinheitlichen Feiertagen). Kostenfrei aus dem dt. Festnetz, Mobilfunknetz ggfs. abweichend. Anrufer aus Österreich und der Schweiz können die Telefon-Hotline aus technischen Gründen über +49 721 693 7233 zum Tarif für Auslandsverbindungen des jeweiligen Telefonanbieters erreichen.
    Es gelten Nutzungsbedingungen, Hinweise zu Markenzeichen sowie die allgemein gültigen Informationen zu Datenschutz und Cookies. Bitte beachten Sie auch die gesonderten Nutzungsbedingungen für die Deployment-Hotline.


    Donnerstag, 6. November 2014 14:24
  • Hallo Tobias,

    danke erst einmal für die schnelle Rückmeldung. Wenn ich den Syntax auf deinen Vorschlag ändere bekomme ich eine Fehlermeldung:

    Ungültiges Muster für reguläre Ausdrücke: usys\ora_params.
    (Get-Content $ASNFile_Name) | Foreach-Object {$_ -replace <<<<  "usys\ora_params", ";usys\ora_params"} | Set-Content $ASNFile_Name
    Übrigens arbeite ich auf einer Maschine mit PS 2.0.

    Viele Grüße

    Heiko

    Donnerstag, 6. November 2014 14:50
  • Hallo Heiko!

    Hier greifen 2 Syntaxen ineinander, die man beide kennen sollte!
    Auch das was die TechNet Deployment Hotline da schreibt, Funktioniert deshalb nicht., weil man hier beides beachten muss!

    1.)
    Man sollte sich mit den Regeln zur Verwendung einzelner und doppelter
    Anführungszeichen in Windows PowerShell vertraut machen. ;-)

    Zeichenfolgen können in einfache gerade (') oder
    doppelte gerade Anführungszeichen (") eingeschlossen werden.
    Diese erzeugen in der PowerShell ein unterschiedliches verhalten.

    Lies das hier:
    http://www.colorconsole.de/PS_Windows/de/about_Quoting_Rules.htm
    oder wenn die PowerShell Hilfe Installiert ist:
    Get-Help about_Quoting_Rules # (Möglicherweise in Englischer Sprache)
    Oder wenn die Hilfe nicht Installiert ist die Hilfe Online abrufen
    Get-Help about_Quoting_Rules -Online # (Möglicherweise in Englischer Sprache)

    2.)
    Der oprerator –replace benutzt Reguläre Ausdrücke (RegEx) als Suchmuster!
    Hier musst du dich mit der RegEx Syntax auskennen!

    PowerShell Text Verarbeitung, die Wahl der Mittel

    Text kann man in PowerShell mit “Regulären Ausdrücken” oder Englisch: Regular Expressions bearbeiten.
    Weil der Name “Regular Expressions” etwas unhandlich ist, werden diese Kurz auch “RegEx” genannt.

    Reguläre Ausdrücke (RegEx) selber nur Text, dieser Text erzeugt ein Suchmuster, jeder Buchstabe in dem Text wird einzeln verglichen.
    RegEx benutzen einzelne oder zusammengesetzte Zeichen (Buchstaben) um das verhalten für das Suchmuster zu steuern, deshalb spreche ich im Folgen bei dem Suchmuster-Text von RegEx, von einer Text-Zeichenfolge.  
    Dieses Suchmuster (RegEx) kann als Filterkriterium bei der Suche in einem anderen Text verwendet werden, Text wird mit dem Muster des regulären Ausdrucks abgeglichen.

    PowerShell bietet von sich aus einige Operatoren, die Text Verarbeitung erledigen.
    Hier muss man wissen, welche Operatoren RegEx benutzen und welche Operatoren eine andere Technik benutzen.

    Die folgenden PowerShell Operatoren benutzen Regular Expressions:

    -Match
    -NotMatch
    -Replace

    Das Like verwendet den Stern * als Platzhalter (Joker-Zeichen) und nicht RegEx !

    -Like
    -NotLike

    Beispiel:

    "Windows PowerShell" -like "*shell" #ergibt $True

    Hierzu sollte man sich das PowerShell Thema der Vergleichs-Operatoren durchlesen!
    Get-Help about_Comparison_Operators

    Nachteile von RegEx:
    Wenn ein Text (Sonder-) Zeichen enthält, die in den RegEx auch eine Sonderfunktion haben, wird die Erstellung eines geeigneten RegEx Filters zu einer kryptischen Herausforderung.
    Ebenso wollen wir hauptsächlich keine Text-Muster suchen, sondern einzelne Zeichen.
    Dafür ist RegEx überdimensioniert und kostet für diesen Zweck zu viel Rechenzeit.

    Deshalb nutze ich gerne die “einfachen” Methoden, die uns die .NET Klasse [String] bietet.

    Die .NET Klasse System.String in der PowerShell

    Jeder Text in der PowerShell ist ein Objekt von der .NET Klasse (Typ) System.String.
    Die Methoden die uns diese Klasse bietet, kann man mit einem einfachen Aufruf von Get-Member herausbekommen.

    "Hallo" | Get-Member

    Oder man schaut sich die gute Dokumentation der System.String Klasse im Microsoft Developer Network (MSDN) an.
    http://msdn.microsoft.com/de-de/library/system.string%28v=vs.110%29.aspx

    Für uns sind die Methoden von Interesse!

    Wer Interesse hat, einige String Methoden in der PowerShell in Aktion zu sehen, sollte sich den folgenden Microsoft Artikel ansehen:

    Powershell Tip oft he week: The String’s the Thing
    http://technet.microsoft.com/en-us/library/ee692804.aspx

    Für unseren Zwecke ist die System.String.Replace() Methode interessant.
    Die Methode von der Klasse System.String.Replace() beachteten die Groß- und Kleinschreibung!!!!!!!!

    Reguläre Ausdrücke (Regular Expression)

    Bei Regular Expression (RegEx) muss man sich  mit den Steuer- und  Escape-Zeichen in Regulären ausdrücken auskennen.

    Reguläre Ausdrücke (RegEx) sind wie gesagt Texzeichenfolgen die ein Suchmuster darstellen.
    Innerhalb dieses Textes werden einige Zeichen zum steuern des Verhaltes benutzt.
    Die Zeichen die eine Funktion in der RegEx-Text-Zeichenfolge haben nennt man auch Sonderzeichen.
    (\, *, +, ?, |, {, [, (,), ^, $,., # und Leerzeichen)

    Der zurück gelehnte Schrägstrich \ (Englisch: ‚backslash‘)  in einem regulären Ausdruck (RegEx) ist so ein Sonderzeichen. Der backslash hat die Funktioniert als Maskierungszeichen in RegEx ausdrücken.

    Maskierungszeichen oder Fluchtsymbol, (Englisch: ‚escape character‘ kurz auch nur ‚escape‘ genannt), ist ein bestimmtes Zeichen, das verhindert, dass das nachfolgende Zeichen vom einem regulären Ausdruck als Funktionszeichen erkannt wird.
    Das Plus Zeichen + ist in RegEx auch ein Sonderzeichen, A+ z.B. bedeutet, dass der Buchstabe A einmal oder mehrmals an dieser Stelle vorkommen kann (Groß- und Kleinschreibung wird hier beachtet!).
    Wenn man Plus Zeichen aber selbst im Text suchen möchte, so muss man die Sonderfunktion des Plus Zeichen + abschalten.
    Dies macht ein vorangestellte backslash.
    Im  folgenden Beispiel wird das Plus Zeichen selbst gesucht und die Sonderfunktion ist durch den backslash ‚Maskiert‘:
    A\+

    Wenn man in RegEx die Funktion des backslash selbst abschalten will, so muss der backslash mit dem backslash Maskiert werden. Etwa so: \\.

    Es gibt in regulären Ausdrücken (RegEx) noch viel mehr Sonderzeichen, da muss man sich mit der Syntax für reguläre Ausdrücke beschäftigen.
    Eine gute Übersicht der .NET RegEx in Deutsch, gibt es hier im Microsoft Developer Network:

    Sprachelemente für reguläre Ausdrücke – Kurzübersicht
    http://msdn.microsoft.com/de-de/library/az24scfc%28v=vs.110%29.aspx

    Alles auf einem Din A4-Blatt findet man in Englisch hier:

    Regular Expressions Cheat Sheet by DaveChild
    http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
    (dort den Download Link suchen!)


    Um die meisten Sonderzeichen alle auf einmal zu Maskieren benutzt man die Methode Escape() von der  .NET Klasse System.Text.RegularExpressions.RegEx.

    Ich persönlich bin kein RegEx Experte.


    Es gibt im Internet sehr viel gute Schnellanleitungen für Regular Expression (RegEx).
    Hier ist eine gute in Deutsch:

    Schritt-für-Schritt zu eigenen Regulären Ausdrücken
    http://www.regenechsen.de/phpwcms/index.php?regex_allg

    Tutorial Reguläre Ausdrücke
    https://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausdruecke

    Wie man mit PowerShell Reguläre Ausdrücke macht hat Tobias Weltner in Englisch hier veröffentlicht:
    Chapter 13. Text and Regular Expressions
    http://powershell.com/cs/blogs/ebookv2/archive/2012/03/20/chapter-13-text-and-regular-expressions.aspx

    Dein Code müsste so laufen (Beispiel):

    $Text = @'
    ;Oracle 11 g R2 / Uniface 9.6 Start -----------------------------------------
    ORA = U7.0
    usys$ora_params dpa,dhfr,dri,af 50,ss 10,fa,oc 100,dc,dsf,en,dpc,u4_compatibility,nclob_ext
    ;Oracle 11 g R2 / Uniface 9.6 Ende ------------------------------------------
    ;ORA 11 Start ---------------------------------------------------------------
    '@
    
    
    ############## Beispiel 1 mit doppelten Anführungzeichen
     
     # mit doppelten Anführungzeichen muss das $ dollarzeichen in
     # der PowerShell maskiert werde UND in der Regular Expression!
     $Text -split "`n" | ForEach-Object {
    
      # Sonderzeichen in der Regular Expression Maskieren
      $SuchText = [System.Text.RegularExpressions.RegEx]::Escape("usys`$ora_params")
      $_ -replace $SuchText, ";usys`$ora_params"
    }
    
    ############## Beispiel 2 mit einfachen Anführungzeichen
    
     # mit einfachen Anführungzeichen muss das $ dollarzeichen nicht in
     # der PowerShell maskiert werde SONDERN NUR in der Regular Expression!
     $Text -split "`n" | ForEach-Object {
    
      # Sonderzeichen in der Regular Expression Maskieren
      $SuchText = [System.Text.RegularExpressions.RegEx]::Escape('usys$ora_params')
      $_ -replace $SuchText, ';usys$ora_params'
    }



    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Donnerstag, 6. November 2014 14:58
  • Hallo Peter,

    besten Dank für deinen Ausführungen. Ich habe das Problem jetzt so lösen können:

    (Get-Content $ASNFile_Name) | Foreach-Object {$_ -replace [System.Text.RegularExpressions.RegEx]::Escape('usys$ora_params'), ';usys$ora_params'} | Set-Content $ASNFile_Name

    Danke nochmal und schönes Wochenende

    Viele Grüße

    Heiko

    Freitag, 7. November 2014 08:36
  • Hallo Heiko,

    die Antwort von Peter ist seehr ausführlich, tl;dr ;)
    Das mit den RegEx ist richtig, hätte man durch die String Funktionen lösen können, die ebenfalls kein RegEx verwenden:

    $string.Replace("usys$ora_params", ";usys$ora_params")

    Gruß
    Lennart

    • Als Antwort markiert Heiko Probst Freitag, 7. November 2014 12:07
    Freitag, 7. November 2014 08:45
  • @Heiko

    Schön das ich helfen konnte.
    Lies bitte noch das hier:

    Wozu Antworten markieren und für Beiträge abstimmen?

    @Lennart

    Ja wenn ich den Eindruck habe , das jemand den Operator -replace benutzt, ohne zu wissen das dieser RegEx verwendet, muss man halt mal aufklären ;-) .

    Und da ich die Textbausteine sowieso schon fertig habe, weil dort immer wieder jemand drüber fällt wirds ausführlich...

    Auch im Forum kann man was lernen. Wenn man nur die Lösung in den Ring wirft, fällt er das nächste mal wieder drüber und wir haben noch mehr Arbeit ;-) .


    PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    auf der deutschsprachigen PowerShell Community

    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+

    Freitag, 7. November 2014 09:16
  • Hallo Lennart,

    Danke für den Hinweis. Werde ich mir für das nächste mal notieren :-)

    Gruß

    Heiko

    Freitag, 7. November 2014 09:45