これを機能させるために必要なのは、次のことです。
$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)
ライン。
このように構造化することにより、関数を作成し、部分的に一致するテキスト文字列を渡し、渡された値を使用してスクリプトブロックの作成を実行し、正常に機能させることができます。
上記の答えは、変数内で置換される値を渡す方法を正しく説明していません。