Что нового

[RegExp] Выбор значений из текстового файла

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Господа, как сделать выбор значений из следующего текста:

Составное USB устройство-USB\VID_046D&PID_0A29\000D44D973C7
Generic USB Hub-USB\VID_8087&PID_0024\5&27E8C4B3&0&1
Generic USB Hub-USB\VID_8087&PID_0024\5&38CA7A24&0&1
Корневой USB-концентратор-USB\ROOT_HUB20\4&14207F40&0
Корневой USB-концентратор-USB\ROOT_HUB20\4&2C86C80D&0
Alcor Micro USB 2.0 Card Reader-USB\VID_058F&PID_6362\058F63626476
Корневой концентратор Intel(R) USB 3.0-IUSB3\ROOT_HUB30\4&A3F7854&0
Запоминающее устройство для USB-USB\VID_1005&PID_B113\000FF1107061121131255123
Концентратор USB 2.0 MTT-USB\VID_05E3&PID_0610\5&2FA0C562&0&4

нужно найти строку (Запоминающее устройство для USB-USB\) и после слеша значение до конца строки записать в файл.
Код:
$hFile = FileOpen("Log.txt", 2)
$rFile = FileOpen("Result.txt", 2)


If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$sComputer = "."
$oWMIService = ObjGet("winmgmts:\\" & $sComputer & "\root\cimv2")
$cItems = $oWMIService.ExecQuery("Select * from Win32_USBHub")
For $oItem in $cItems

$saveText = $oItem.Description & "-" & $oItem.DeviceID
FileWrite($hFile, $saveText & @CRLF)

Next
FileClose($hFile)
$sText = FileRead ($hFile)
$aResult = StringRegExp($sText, '(Запоминающее устройство для USB-USB)', 3)
FileWrite($rFile, $aResult & @CRLF)

FileClose($rFile)
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$sComputer = "."
$oWMIService = ObjGet("winmgmts:\\" & $sComputer & "\root\cimv2")
$cItems = $oWMIService.ExecQuery('Select DeviceID,description from Win32_USBHub where description="Запоминающее устройство для USB"')
$saveText=''
For $oItem in $cItems
$saveText &= StringReplace($oItem.DeviceID,'USB\','')& @CRLF
Next
MsgBox(32,'',$saveText)
 
Верх