在PowerShell中从文本文件提取数据

贝里亚

我想知道是否甚至可以从具有以下格式的文本文件中获取特定数据:

Adapter Number:         1
Adapter Name:           elxfc
                                Device 1
                                SCSI id:                1
                                LUN:                    0
                                Vendor:                 HP
                                Product:                Ultrium 4-SCSI
                                Firmware:               H6FW



Adapter Number:         2
Adapter Name:           elxfc
                                Device 1
                                SCSI id:                1
                                LUN:                    0
                                Vendor:                 HP
                                Product:                Ultrium 4-SCSI
                                Firmware:               H6FW


                                Changer 1
                                SCSI id:                1
                                LUN:                    1
                                Vendor:                 HP
                                Product:                MSL G3 Series
                                Firmware:               8.70

最后,请在此处填写表格,以获取有关设备的信息,以获取类似以下内容的输出:

Ultrium 4-SCSI, 1 1 0
Ultrium 4-SCSI, 2 1 0
MSL G3 Series, 2 1 1

我已经尝试了一些基本的字符串操作,但是没有运气。问题是要在相同的“主”适配器号中捕获第二个设备。

理查德

就像是:

switch -regex -file $inputFile {
  "Adapter Number:\s+(\d+)" { $adapterNumber = $Matches[1]; break; }
  "\s+SCSI id:\s+(\d+)" { $scsiId = $Matches[1]; break; }
  "\s+LUN:\s+(\d+)" { $lun = $Matches[1]; break; }
  "\d+Product:\s+(.+)" { 
                   $prod = $Matches[1];
                   "{0}, {1} {2} {3}" -f $prod, $adapterNumber, $scsiId, $lun;
                  }
}

应该做。

使用-regex巫婆,匹配用正则表达式完成,-file传递的文件的每一行都通过开关进行处理(有关PSH的更多详细信息,请参见在线switch)。否则,它只是保持Product:匹配时输出所需的状态

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章