sourcecode

파일에서 찾기 및 바꾸기 실패

copyscript 2023. 8. 12. 10:35
반응형

파일에서 찾기 및 바꾸기 실패

다음과 같은 방법으로 파일을 찾고 교체하려고 합니다.

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

하지만 저는 항상 오류가 납니다.

Set-Content : 'c:\program files (x86)\MyProj\web.config' 파일을 다른 프로세스에서 사용하고 있기 때문에 이 프로세스에서 액세스할 수 없습니다.

파일이 열려 있지 않습니다.Get-content는 아직 파일을 공개하지 않은 것 같습니다.

왜 그런 일이 일어날까요?동일한 파일에서 문제 없이 찾고 교체하는 방법은 무엇입니까?

열려 있는 동안에는 동일한 파일을 읽고 쓸 수 없습니다. Get-Content는 파일을 열어 읽고 동시에 Set-Content는 파일에 쓰려고 합니다.Get-Connt 호출을 괄호 안에 넣으면 파일을 열고 내용을 읽고 닫습니다.

(Get-Content $FileFullpath) | ...

언급URL : https://stackoverflow.com/questions/10480673/find-and-replace-in-files-fails

반응형