0

PowerShell を使用してファイルで文字列を検索し、次の行にある文字列の一部を返そうとしています。

ファイルは次のようになります: LTI.ini

Division=AAA-
TargetContainer=OU=Computers,OU=123,DC=ms,DC=com

Division=BBB-
TargetContainer=OU=Computers,OU=456,DC=ms,DC=com

だから私はこれまでのところ

$name = 'BBB-1234'
$pos = $name.IndexOf("-")
$leftPart = $name.Substring(0, $pos) + '-'

$a = Get-Content ..\Desktop\Powershell\LTI.ini
$b = $a | Select-String $leftPart
$b

これにより、LTI.ini の BBB- 行として $b が得られますが、次の行を変数に設定し、TargetContainer= の後のすべてを取得する方法がわかりません。

4

2 に答える 2

4

これはうまくいくはずです:

$b =($a | select-string $leftpart -Context 1  ).context.postcontext -replace '(?:TargetContainer=)(.*)','$1'
$b
于 2013-06-14T05:03:22.413 に答える
0

言及された複数行の正規表現@JPBlancは次のとおりです。

$regex = "${leftPart}(.+)(TargetContainer=)(.+)Division="
[regex]::Matches($a, $regex, 'Singleline')[0].Groups[3].Value.Trim()
于 2013-06-14T08:02:38.103 に答える