9

i have a problem with replacing a whole line in a ini-file, it just seems to add my result to thesame line.

Here is the ini-file:

    [environment]
APP_USER=Domain\User1

I just wish to replace the APP_USER=Domain\User1 with for example APP_USER=Domain\User2.

Here is my 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

I get this result when i use the above code:

    [environment]
APP_USER=Domain\User2Domain\User1

Help would be much appreciated.

//Regard PMS

1 Answer 1

21

To match the whole line:

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

The .+ will match the rest of the line.

Sign up to request clarification or add additional context in comments.

3 Comments

@user2400659, good to hear, don't forget to mark the correct as appropriate.
.+ was what I needed. Spent some time looking for this one. Thanks!
@user2400659, (or anyone) what if you want to remove the matched line, including the \n newline? This solution helped me blank out lines I want removed, based on whether they contain a string. But then I end up with hundreds of empty newlines in the file, scattered everywhere. :-(

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.