2

Я уже знаю, что в Windows вы можете получить серийный номер тома USB-накопителя, выполнив dir <drive_letter>: где <drive_letter> - буква диска USB-накопителя. Я также провел некоторый поиск и обнаружил, что в Linux есть команда lsusb, которая также выдаст вам серийный номер тома.

Есть ли в Cygwin соответствующая команда? Я не могу найти lsusb ни в одном из установочных файлов (у libusb его нет).

У меня есть скрипт, который запускает и копирует файлы на конкретную карту памяти USB каждый день. Проблема в том, что я не могу гарантировать, что это будет единственная карта памяти USB, подключенная к моему компьютеру в любой момент времени, и Windows произвольно назначает буквы дисков на карты памяти USB. Соответствие серийному номеру тома позволит мне быть уверенным, что я пишу на правильный USB-накопитель.

2 ответа2

0

Возможно, вы сможете использовать diskpart. Насколько я знаю, это включено в самые последние версии MS Windows. Я использую Windows 7 Starter Edition (поэтому у меня очень мало способов "опытных технических инструментов", таких как предполагается, что они будут поставляться с "серверной" или "профессиональной" версией Windows). Тем не менее, у меня есть diskpart.

Обратите внимание, что вам может понадобиться использовать UAC (контроль доступа пользователей), чтобы вообще запустить diskpart, даже просто чтобы получить информацию о дисках или разделах (и я считаю, что разработка UAC из perl выходит за рамки вопроса; -). И обратите внимание, что diskpart - это в основном интерактивный инструмент, и хотя в документации описывается использование сценариев для его работы, я еще не пробовал этого.

0

Вы можете получить некоторую информацию из /proc /registry, которая может быть полезна, например, последняя строка ниже относится к USB-устройству:

$ more /proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/*
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/0
::::::::::::::
Root\LEGACY_PARTMGR\0000
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/1
::::::::::::::
IDE\DiskWDC_WD2500BEVS-22UST0___________________01.01A01\4&1375d492&0&0.0.0
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/2
::::::::::::::
USBSTOR\Disk&Ven_Brother&Prod_MFC-5860CN&Rev_1.00\8&6604242&0&BROL6F685804&0
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/3
::::::::::::::
uuid:73656761-7465-7375-636b-0090a9b61377\UMB\3&1e7e4b7a&0&uuid:73656761-7465-7375-636b-0090a9b61377
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/4
::::::::::::::
SD\VID_27&OID_5048&PID_SD04G&REV_3.0\5&fda7c2c&0&0
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/5
::::::::::::::
USBSTOR\Disk&Ven_Multi&Prod_Flash_Reader&Rev_1.00\9&4b089fb&0&058F0O1111B1&0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .