2013-05-20 2 views
7

Ich habe ein Problem mit dem Ersetzen einer ganzen Zeile in einer Ini-Datei, es scheint nur mein Ergebnis zu der gleichen Zeile hinzufügen.Ersetzen Sie eine ganze Zeile in einer INI-Datei mit Powershell

Hier ist die ini-Datei:

[environment] 
APP_USER=Domain\User1 

ich die APP_USER = Domain \ User1 mit zum Beispiel APP_USER = Domain \ User2 nur ersetzen wollen.

Hier ist mein Code:

$USER = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name   
(Get-Content D:\Test\test.ini) | ForEach-Object { $_ -replace "APP_USER=" , "APP_USER=$user" } | Set-Content D:\Test\test.ini 

ich dieses Ergebnis zu erhalten, wenn ich den obigen Code verwenden:

[environment] 
APP_USER=Domain\User2Domain\User1 

Hilfe sehr geschätzt würde.

// PMS Regard

Antwort

18

die ganze Linie an Spiel:

-replace "APP_USER=.+","APP_USER=$user" 

Die .+ den Rest der Zeile entsprechen.

+0

Vielen Dank, genau das, was ich brauchte. – user2400659

+0

@ user2400659, gut zu hören, vergessen Sie nicht, das richtige zu markieren. –

+0

. + War was ich brauchte. Habe einige Zeit gebraucht, um nach diesem zu suchen. Vielen Dank! – Nimblejoe

Verwandte Themen