2016-10-13 1 views
0

교체 용 RegEx이 내 엉덩이를 차고 있습니다. 텍스트 파일에 />Powershell.Replace RegEx

값 = "COM8을"다른 COM 포트 (예 : "COM9", "COM13", 등)와 "COM8을"대체 : 나는 발견을 시도하고있다.

(Get-Content 'C:\Path\File.config').Replace('/".*?"', '"COM99"') | Set-Content 'C:\Path\File.config' 

제공 할 수있는 도움에 미리 감사드립니다.

답변

1

Get-Content은 문자열 목록을 생성합니다. 각 문자열에서 member enumeration을 통해 Replace()이 호출됩니다. 의미는 Regex.Replace() 메서드가 아니라 String.Replace() 메서드입니다. 전자는 일반적인 문자열 교체 만 수행합니다.

(Get-Content 'C:\Path\File.config') -replace '=".*?"', '="COM99"' | 
    Set-Content 'C:\Path\File.config' 
:

대신 -replace 연산자를 사용