Премини към съдържанието
От 1-ви септември 2021 г., вход във форумите ще е възможен само с имейл адрес вместо потребителско име. Ако не помните имейла с който сте се регистрирали, вижте го в настройките на профила си. ×
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Малко помощ за batch


DarkEdge

Препоръчан отговор


 Командата

devcon hwids USB*|findstr STOR\>c:\USB_stor.txt

 извежда

        USBSTOR\DiskChipBankSD/MM_Reader____4080
        USBSTOR\DiskChipBankSD/MM_Reader____
        USBSTOR\DiskChipBank
        USBSTOR\Disk
        USBSTOR\DiskJetFlashTranscend_32GB__1100
        USBSTOR\DiskJetFlashTranscend_32GB__
        USBSTOR\DiskJetFlash
        USBSTOR\Disk

 във файла c:\USB_stor.txt.

 

Как да конфигурирам findstr така, че на изхода да има:

ChipBankSD/MM_Reader____4080

JetFlashTranscend_32GB__1100
или с допълнителни редове за обработка на наличния по-горе текст.
 

Линк към коментара
Сподели в други сайтове

ken, благодаря много, но би ли пренасочил резултатите във файл. Нещо не ми се отдаде - извежда ми само на първия намерен.

C:\Temp\usbstor1.txt

USBSTOR\DISK&VEN_SD/MMC&PROD_CARD__READER&REV_1.00\058F011111B1&0
        USBSTOR\DiskSD/MMC__Card__Reader____1.00
        USBSTOR\SD/MMC__Card__Reader____1
        SD/MMC__Card__Reader____1
USBSTOR\DISK&VEN_CHIPBANK&PROD_SD/MM_READER&REV_4080\110074973765&0
        USBSTOR\DiskChipBankSD/MM_Reader____4080
        USBSTOR\ChipBankSD/MM_Reader____4
        ChipBankSD/MM_Reader____4
USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_32GB&REV_1100\106NXICPCU40YH61&0
        USBSTOR\DiskJetFlashTranscend_32GB__1100
        USBSTOR\JetFlashTranscend_32GB__1
        JetFlashTranscend_32GB__1
 

извежда:

SD/MMC__Card__Reader____1.00

 

трябва ми изход във файл на следното в случая:

SD/MMC__Card__Reader____1.00

CHIPBANK&PROD_SD/MM_READER&REV_4080

JETFLASH&PROD_TRANSCEND_32GB&REV_1100

 

Благодаря!
 

Линк към коментара
Сподели в други сайтове

Първия скрипт тествах с твоите данни от първия пост.

За новите данни използвай направо :

 

findstr /V USBSTOR filename


P.S. Така пък няма да излязат номерата в края редовете

Линк към коментара
Сподели в други сайтове

Идеята е да извлече хардуерните идентификатори на закачените USB дискове, които идентификатори да се вписват в inf файл на драйвър.


Линк към коментара
Сподели в други сайтове

Да, но само с findstr е малко трудно.

Задължително ли е да се използва само findstr ?

О, не! Ако може и без devcon, а с wmic...Важен е изходът, не начинът. Накрая извлечените резултати трябва да се добавят в съществуващ .inf файл:

...

[cfadisk_device]

%Microdrive_devdesc% = cfadisk_install,USBSTOR\Disk&Ven_LEXAR&Prod_JD_LIGHTNING_II&Rev_1100

%Microdrive_devdesc% = cfadisk_install,USBSTOR\DiskJetFlashTranscend_32GB__1100

%Microdrive_devdesc% = cfadisk_install,USBSTOR\DiskChipBankSD/MM_Reader____4080

...

Благодаря за отделеното време!

Линк към коментара
Сподели в други сайтове

А този скрипт, какво връща ?

@echo off
devcon hwids USB*|findstr  /c:"USBSTORDisk">c:\temp\usbstor1.txt
for /f "delims=" %%a in (c:\temp\usbstor1.txt) do call :showa %%a
goto :eof
:showa
   set v=%1
   @echo %v:~12%
:eof
Линк към коментара
Сподели в други сайтове

c:\temp\usbstor1.txt - празен -0 бита

 

Грешката е моя.

Редът :

devcon hwids USB*|findstr  /c:"USBSTORDisk">c:\temp\usbstor1.txt

трябва да е :

devcon hwids USB*|findstr  /c:"USBSTOR\Disk">c:\temp\usbstor1.txt

Линк към коментара
Сподели в други сайтове

:) О, да, вярно \ Ама, и аз като пате - копи/пейст без да гледам

 

        USBSTOR\DiskSD/MMC__Card__Reader____1.00
        USBSTOR\DiskSD/MMC__Card__Reader____
        USBSTOR\DiskSD/MMC__
        USBSTOR\Disk
        USBSTOR\DiskChipBankSD/MM_Reader____4080
        USBSTOR\DiskChipBankSD/MM_Reader____
        USBSTOR\DiskChipBank
        USBSTOR\Disk
        USBSTOR\DiskJetFlashTranscend_32GB__1100
        USBSTOR\DiskJetFlashTranscend_32GB__
        USBSTOR\DiskJetFlash
        USBSTOR\Disk
 

Линк към коментара
Сподели в други сайтове

Освен да се комбинират двата скрипта:

@echo off
devcon hwids USB*|findstr  /c:"USBSTOR\Disk">c:\temp\usbstor1.txt
findstr  /R "^USBSTOR __[0-9]" c:\temp\usbstor1.txt>c:\temp\usbstor2.txt
for /f "delims=" %%a in (c:\temp\usbstor2.txt) do call :showa %%a
goto :eof
:showa
   set v=%1
   @echo %v:~12%
:eof
Линк към коментара
Сподели в други сайтове

        USBSTOR\DiskSD/MMC__Card__Reader____1.00

        USBSTOR\DiskChipBankSD/MM_Reader____4080

        USBSTOR\DiskJetFlashTranscend_32GB__1100

 

Нещо такова, :)

Остава да се премахнат водещите интервали.

USBSTOR\DiskSD/MMC__Card__Reader____1.00

USBSTOR\DiskChipBankSD/MM_Reader____4080

USBSTOR\DiskJetFlashTranscend_32GB__1100

 

10х

Линк към коментара
Сподели в други сайтове

Това :

@echo off
devcon hwids USB*|findstr  /c:"USBSTOR\Disk">c:\temp\usbstor1.txt
findstr  /R "^USBSTOR _[0-9] $[0-9]" c:\temp\usbstor1.txt>c:\temp\usbstor2.txt
for /f "delims=" %%a in (c:\temp\usbstor2.txt) do call :showa %%a
goto :eof
:showa
   set v=%1
   @echo %v:~12%
:eof

при мен с две включени флашки ги показва без водещи интервали, но дублира запис за едната

ADATA___USB_Flash_Drive_1.0
JetFlashTranscend_8GB___8.0
JetFlashTranscend_8GB___
Линк към коментара
Сподели в други сайтове

 

        USBSTOR\DiskSD/MMC__Card__Reader____1.00

        USBSTOR\DiskChipBankSD/MM_Reader____4080

        USBSTOR\DiskJetFlashTranscend_32GB__1100

        USBSTOR\DiskJetFlashTranscend_32GB__

 

дублиран + 1 празен ред  :( + водещите интервали. Странно е, че само последният е дублиран.

Линк към коментара
Сподели в други сайтове

Последна версия:

@echo off
devcon hwids USB*|findstr  /c:"USBSTOR\Disk">c:\temp\usbstor1.txt
findstr  /R "^USBSTOR _*[0-9][.][0-9]*[0-9]$" c:\temp\usbstor1.txt>c:\temp\usbstor2.txt
for /f "delims=" %%a in (c:\temp\usbstor2.txt) do call :showa %%a
goto :eof
:showa
   set v=%1
   @echo %v:~12%
:eof

При мен няма водещи интервали и вече няма дублиране.


А така ми показва и харддиска закачен през USB :

@echo off
devcon hwids USB*|findstr  /c:"USBSTOR\Disk">c:\temp\usbstor1.txt
findstr  /R "^USBSTOR _*[0-9][.]*[0-9]*[0-9]$" c:\temp\usbstor1.txt>c:\temp\usbstor2.txt
for /f "delims=" %%a in (c:\temp\usbstor2.txt) do call :showa %%a
goto :eof
:showa
   set v=%1
   @echo %v:~12%
:eof

ADATA___USB_Flash_Drive_1.00
JetFlashTranscend_8GB___8.07
WDC_WD20

Но те всъщност са два :(

Линк към коментара
Сподели в други сайтове

Хм, изход:

        USBSTOR\DiskSD/MMC__Card__Reader____1.00

Линк към коментара
Сподели в други сайтове

Как изглежда изхода от командата :

 

devcon hwids USB*

 

USB\ROOT_HUB\4&1B88D944&0

    Name: USB Root Hub

    Hardware ID's:

        USB\ROOT_HUB&VID8086&PID27CB&REV0001

        USB\ROOT_HUB&VID8086&PID27CB

        USB\ROOT_HUB

USB\ROOT_HUB\4&1C378034&0

    Name: USB Root Hub

    Hardware ID's:

        USB\ROOT_HUB&VID8086&PID27CA&REV0001

        USB\ROOT_HUB&VID8086&PID27CA

        USB\ROOT_HUB

USB\ROOT_HUB\4&307E4995&0

    Name: USB Root Hub

    Hardware ID's:

        USB\ROOT_HUB&VID8086&PID27C9&REV0001

        USB\ROOT_HUB&VID8086&PID27C9

        USB\ROOT_HUB

USB\ROOT_HUB\4&7420FE3&0

    Name: USB Root Hub

    Hardware ID's:

        USB\ROOT_HUB&VID8086&PID27C8&REV0001

        USB\ROOT_HUB&VID8086&PID27C8

        USB\ROOT_HUB

USB\ROOT_HUB20\4&2ABD8B9&0

    Name: USB Root Hub

    Hardware ID's:

        USB\ROOT_HUB20&VID8086&PID27CC&REV0001

        USB\ROOT_HUB20&VID8086&PID27CC

        USB\ROOT_HUB20

USB\VID_1A40&PID_0101\5&24569112&0&8

    Name: Generic USB Hub

    Hardware ID's:

        USB\VID_1A40&PID_0101&REV_0111

        USB\VID_1A40&PID_0101

    Compatible ID's:

        USB\Class_09&SubClass_00&Prot_00

        USB\Class_09&SubClass_00

        USB\Class_09

USB\VID_1A40&PID_0101\6&218FA888&0&1

    Name: Generic USB Hub

    Hardware ID's:

        USB\VID_1A40&PID_0101&REV_0111

        USB\VID_1A40&PID_0101

    Compatible ID's:

        USB\Class_09&SubClass_00&Prot_00

        USB\Class_09&SubClass_00

        USB\Class_09

USB\VID_058F&PID_6335\058F011111B1

    Name: USB Mass Storage Device

    Hardware ID's:

        USB\VID_058F&PID_6335&REV_0102

        USB\VID_058F&PID_6335

    Compatible ID's:

        USB\Class_08&SubClass_06&Prot_50

        USB\Class_08&SubClass_06

        USB\Class_08

USB\VID_8564&PID_1000\106NXICPCU40YH61

    Name: USB Mass Storage Device

    Hardware ID's:

        USB\VID_8564&PID_1000&REV_1100

        USB\VID_8564&PID_1000

    Compatible ID's:

        USB\Class_08&SubClass_06&Prot_50

        USB\Class_08&SubClass_06

        USB\Class_08

USB\VID_09DA&PID_C10A\5&1AA43546&0&1

    Name: USB Input Device

    Hardware ID's:

        USB\VID_09DA&PID_C10A&REV_1030

        USB\VID_09DA&PID_C10A

    Compatible ID's:

        USB\Class_03&SubClass_01&Prot_02

        USB\Class_03&SubClass_01

        USB\Class_03

USBSTOR\DISK&VEN_SD/MMC&PROD_CARD__READER&REV_1.00\058F011111B1&0

    Name: SD/MMC Card  Reader USB Device

    Hardware ID's:

        USBSTOR\DiskSD/MMC__Card__Reader____1.00

        USBSTOR\DiskSD/MMC__Card__Reader____

        USBSTOR\DiskSD/MMC__

        USBSTOR\SD/MMC__Card__Reader____1

        SD/MMC__Card__Reader____1

        USBSTOR\GenDisk

        GenDisk

    Compatible ID's:

        USBSTOR\Disk

        USBSTOR\RAW

USB\VID_0420&PID_1307\110074973765

    Name: USB Mass Storage Device

    Hardware ID's:

        USB\VID_0420&PID_1307&REV_0100

        USB\VID_0420&PID_1307

    Compatible ID's:

        USB\Class_08&SubClass_06&Prot_50

        USB\Class_08&SubClass_06

        USB\Class_08

USBSTOR\DISK&VEN_CHIPBANK&PROD_SD/MM_READER&REV_4080\110074973765&0

    Name: Microdrive

    Hardware ID's:

        USBSTOR\DiskChipBankSD/MM_Reader____4080

        USBSTOR\DiskChipBankSD/MM_Reader____

        USBSTOR\DiskChipBank

        USBSTOR\ChipBankSD/MM_Reader____4

        ChipBankSD/MM_Reader____4

        USBSTOR\GenDisk

        GenDisk

    Compatible ID's:

        USBSTOR\Disk

        USBSTOR\RAW

USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_32GB&REV_1100\106NXICPCU40YH61&0

    Name: Microdrive

    Hardware ID's:

        USBSTOR\DiskJetFlashTranscend_32GB__1100

        USBSTOR\DiskJetFlashTranscend_32GB__

        USBSTOR\DiskJetFlash

        USBSTOR\JetFlashTranscend_32GB__1

        JetFlashTranscend_32GB__1

        USBSTOR\GenDisk

        GenDisk

    Compatible ID's:

        USBSTOR\Disk

        USBSTOR\RAW

14 matching device(s) found.

 

Линк към коментара
Сподели в други сайтове

Това е архив с изпълнимия файл и сорса му.

 

http://s000.tinyupload.com/index.php?file_id=00634072787719614524

 

Изпълнението е :

 

devcon hwids USB*|getusb.exe

 

Изходът може да се пренасочи във файл:

 

devcon hwids USB*|getusb.exe>usbs.txt

Линк към коментара
Сподели в други сайтове

10x сега ще пробвам

 

Edit:

Мммм, красота! Благодаря много, Ken!

:beer:

Линк към коментара
Сподели в други сайтове

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване