Find and replace in files fails

powershell, powershell-2.0

Solution

You can't read and write to the same file while it's open. `Get-Content` opens the file for reading and, at the same time, `Set-Content` tries to write to it. Put the `Get-Content` call in parentheses; it will open the file, read its content and close it.

(Get-Content $FileFullpath) | ...

Problem

I am trying to do find and replace in a file using following approach. ``` Function Find-Replace ($FileFullpath, $FindString, $ReplacementString) { Get-Content $FileFullpath | Foreach-Object {$_ -replace $FindString, $ReplacementString } | Set-Content $FileFullpath } Find-Replace "c:\program files (x86)\MyProj\web.config" $OldServiceName $NewServiceName ``` But i am always getting error. Set-Content : The process cannot access the file 'c:\program files (x86)\MyProj\web.config' because it is being used by another process. The file is not opened any where. I think Get-content is yet to release the file. Why it happens ? How to do find and replace in the same file without issue?

Original source