방금이 작업을 수행하고 다음을 생각해 냈습니다.
$InServerName = 'SomeServerNameorIPAddress'
$InFilePath = '\Sharename\SomePath\'
$InFileName = 'Filename.ext'
$OutServerName = 'SomeServerNameorIPAddress'
$OutFilePath = '\Sharename\SomePath\'
$OutFileName = 'Filename.out'
$InFile = -join('\\',$InServerName,$InFilePath,$InFilename)
$OutFile = -join('\\',$OutServerName,$OutFilePath,$OutFilename)
$FindStr = 'some string to match on'
$CompareStr = [scriptblock]::Create($FindStr)
$CompareStr
Get-Content $InFile | Where-Object {$_ -notmatch $CompareStr} | Set-Content $OutFile
Get-Content $OutFile
스크립트 블록을 사용하는 'Where-Object'(중괄호로 표시)는 스크립트 블록 생성 이벤트에서 변수를 선언해야합니다.
$CompareStr = [scriptblock]::Create($FindStr)
선.
이러한 방식으로 함수를 구성함으로써, 함수를 생성하고, 부분적으로 일치하는 텍스트 문자열을 전달하고, 전달 된 값으로 스크립트 블록 생성을 수행하고, 올바르게 작동하게 할 수 있습니다.
위의 답변은 변수 내에서 바꿀 값을 전달하는 방법을 올바르게 설명하지 않습니다.