Win Cmd/Powershell Search and Replace

wersi77

Aktives Mitglied
Hallo zusammen,

aktuell benutze ich Windows BAT Dateien mit folgendem Inhalt:

Code:
powershell -Command "(gc text.txt) -replace 'ALT', 'NEU' | Out-File -encoding ASCII text.txt"
powershell -Command "(gc text.txt) -replace 'MAX', 'MORITZ' | Out-File -encoding ASCII text.txt"
powershell -Command "(gc text.txt) -replace 'JOKO', 'KLAAS' | Out-File -encoding ASCII text.txt"

Hierbei soll einfach ein Search/Replace von der Windows CMD ausgeführt werden.
Allerdings ist dieser Code sehr langsam, weil in diesem Fall die Datei 3 mal geschrieben wird.
Lässt sich dieser Code nicht etwas vereinfachen?
Vielen Dank für Eure Hilfe
 
Ich bin nicht der Powershell-Experte aber ich denke du kannst es so versuchen:

Code:
$original_file = 'path\filename.abc'
$destination_file =  'path\filename.abc.new'
(Get-Content $original_file) | Foreach-Object {
    $_ -replace 'something1', 'something1aa' `
       -replace 'something2', 'something2bb' `
       -replace 'something3', 'something3cc' `
       -replace 'something4', 'something4dd' `
       -replace 'something5', 'something5dsf' `
       -replace 'something6', 'something6dfsfds'
    } | Set-Content $destination_file
 
in powershell einfach das das sollte beser sein

((Get-Content -path C:\ReplaceDemo.txt -Raw) -replace 'brown','white') | Set-Content -Path C:\ReplaceDemo.txt
 
Aber, wie kann ich mehrere replacements (ca. 100) in einen einzigen Befehl packen.
Da muss ja irgendein Schleifen-Konstrukt her, wie Oneixee5 es bereits angedeutet hat.
Wie gesagt, es geht um die Verbesserung der Performance. Der Code aus meinem ersten Thread funktioniert ja auch, aber ist halt seeehr langsam.
 
Ich denke, dass ich der Sache näher komme. Aber warum kann ich beispielsweise keine Variable in der Get-Content Anweisung verwenden:
Code:
$NEXTFILE='meinXml'
$content = Get-Content -Path '$NEXTFILE.xml'

Die Variable wird hier nicht aufgelöst. Woran liegt das?
 
ist es jetzt schneller?

und ja es dürfen keine hoch komma sein weil es sonst als purer text interpretiert wird
 

Zurück
Oben