【发布时间】:2016-10-13 07:14:42
【问题描述】:
您好,我需要一些帮助才能使其正常工作 :) 我有一个名称在列表中的文件。 文件 A。
SomeNameA
SomeNameB
SomeNameC
etc
现在我需要从文件 B 中获取一组行:
ddrObjId_1=SomeNameA
adrrObjType_1=8
adrrObjZone_1=ZONE_A
addrObjIP_1=0.0.0.0
addrObjIP2_1=0.0.0.0
addrObjId_2=SomeNameB
adrrObjType_2=8
adrrObjZone_2=ZONE_B
addrObjIP_2=0.0.0.0
addrObjIP2_2=0.0.0.0
从值与文件 A 中的一个名称匹配的行开始,以及所有后续行,直到找到文件末尾的另一个匹配项。希望这能更好地解释它:)
所以当我完成后,我需要使用数据生成一个新的 FILE C:
address-object SomeNameA
type 1
host 0.0.0.0
mask 0.0.0.0
zone ZONE_A
address-object SomeNameB
type 8
host 0.0.0.0
mask 0.0.0.0
zone ZONE_B
etc
所以我一直在尝试在 StackO 上找到她的一些不同脚本,现在我可以扫描文件以从我的文件中查找单词并获取数据,所以我需要它来获取值然后创建一个新文件女巫持有命令。等等。这是代码不起作用,但它是一个开始。希望有人能为我理解事物..
Clear-Host
$array = @('SomeNameA')
$found = @{}
Get-Content 'D:\Scripts\FileB.txt'| % {
$line = $_
foreach ($item in $array) {
if ($line.Split('=')[1] -like $item) { $found[$item] = $true }
foreach ($item in $line | Where-Object{$_ -like 'addrObjId_*=*' -or $_ -like 'addrObjType_*=*'}) {
write-host $item
}
}
}
$found.Keys | Out-File "C:\results.txt"
【问题讨论】:
标签: arrays powershell foreach multiline fileparsing