@Rampage1410

Удалить определенные строки Powershell?

Есть вывод IDшников устройств в виде:
class CimInstance
{
HardwareID =
[
HID\VID_046D&PID_C050&REV_2720
HID\VID_046D&PID_C050
HID\VID_046D&UP:0001_U:0002
HID_DEVICE_SYSTEM_MOUSE
...
]

}

class CimInstance
{
HardwareID =
[
HID\VID_1A2C&PID_2124&REV_0110&MI_01&Col01
HID\VID_1A2C&PID_2124&MI_01&Col01
HID\VID_1A2C&UP:000C_U:0001
HID_DEVICE_SYSTEM_CONSUMER
...
]
Нужно оставить только первую строку после символа "[" , а все остальное удалить и так для каждого устройства.
Уже второй день над этим мучусь(((
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
@MaxKozlov
Надо при получении ID сразу его и выбирать и записывать, а не парсить кривой текстовый вывод.

Хотя и его можно - сначала убрать перевод строки между [ и следующей строкой, потом оставить только такие строки, а потом убрать "["

но лучше собирать сразу так
Get-PnpDevice |
 Where {$_.HardwareID -notmatch 'PRINTENUM*|ROOT*|SW*|ACPIAPIC*|MONITOR*'} |
 Foreach { $_.HardwareID | Select -first 1 }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы