각 파일에서 문자열을 바꾸려고합니다. 문자열 XXX를 호출 할 수 있습니다. 시작과 끝 사이에있는 정규식 패턴 변수 텍스트로 바꾸고 싶습니다.
현재는 단순히 단어를 대체 한 다음 대체하지 않습니다.
$Pat1 = [regex] '(START)*(END)' # Find Variable between these 2 first
Get-ChildItem * -Recurse | Where-Object {
$_.Attributes -ne "Directory"
} | ForEach-Object {
(Get-Content $_) -replace "XXX","$Pat1" | Set-Content -path $_
}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 각 항공사의 선전 냄비에는 한 알이 필요합니다. 내일 축구 훌륭한 샐러드. 각각은 유럽 계곡이었습니다.
START 파일 이름 1 END lorem ipsum 당근, 생태 토마토 수프. 각 항공사의 선전 냄비에는 한 알이 필요합니다. 내일 축구 훌륭한 샐러드. 각각은 유럽 계곡이었습니다.
30 세드는 미소보다, 주말에는 매우 표적이 된 차량에 냄비였다. Suspendisse dui tortor, faucibus et tellus vitae, malesuada consequat velit urna metus.
================================
질문은 매우 불분명하지만 파일에서 및 XXX
사이의 값 START
과 END
정규식 패턴 자체가 아닌 값 으로 바꾸고 싶다고 생각 합니다. 그렇다면 다음을 시도하십시오.
$Pat1 = [regex] 'START(.*?)END' #Find Variable between these 2 first
Get-ChildItem * -Recurse | Where-Object { -not $_.PSIsContainer } |
ForEach-Object {
$text = (Get-Content $_ -Raw)
$value = [regex]::Match($text, $Pat1).Groups[1].Value
$text -replace "XXX",$value | Set-Content -path $_
}
주의 -replace
등의 작품 'text' -replace 'regex-pattern', 'stringvalue'
오른쪽 값은 정규식 패턴을 허용하지 않습니다,하지만 문자열 (포함 $0
, $1
등 전체 경기를 추가하는 등의 캡처 그룹 1)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다