Я хочу получить содержимое файла.
Формат файла такой:
Disk0MapForUefiBootOrder
PciRoot(0x0)/Pci(0x14,0x0)
PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/NVMe(0x1,7D-F0-B6-71-B7-38-25-00)
PciRoot(0x0)/Pci(0x1B,0x4)/Pci(0x0,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)
PciRoot(0x0)/Pci(0x17,0x0)/Sata(0x1,0xFFFF,0x0)
BBS(0xFFFF,,0x0)/PciRoot(0x0)/Pci(0x14,0x0)
Fast Charge
Disable
*Enable
......
Я хочупрочитайте значение этого Disk0MapForUefiBootOrder, которое содержит NVMe и Sata:
PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/NVMe(0x1,7D-F0-B6-71-B7-38-25-00)
PciRoot(0x0)/Pci(0x1B,0x4)/Pci(0x0,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)
PciRoot(0x0)/Pci(0x17,0x0)/Sata(0x1,0xFFFF,0x0)
, и передайте его в выходной файл. Затем я должен отсортировать его по рангу.
Я пробовал это, но я могу только читать содержимое. Но я не могу оценить его.
Может кто-нибудь помочь мне, пожалуйста?
$FileContents = Get-Content "D:\Boot\file.txt" | Select-String -Pattern "PciRoot" | Out-File D:\Boot\Out2 -Force
$FileContents
$Rank = @{
'NVMe' = 1
'Sata' = 2
}
$FileContents |
Where-Object { $Rank.Contains("NVMe" -and "Sata") } | Sort-Object {[int64]$_.Size} |
Sort-Object { $Rank["NVMe" -and "Sata"] }|
Export-Csv 'Output.csv' -NoType