Войти

Показать полную графическую версию : [решено] Получить номер диска в переменную


Страниц : 1 [2]

Iska
04-04-2014, 20:00
Напрасно.

Option Explicit

Dim objSWbemObjectEx
Dim objFSO

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

With GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
For Each objSWbemObjectEx In .ExecQuery("SELECT * FROM Win32_LogicalDisk")
If objFSO.FileExists(objSWbemObjectEx.Name & "\1") Then
Exit For
End If
Next

For Each objSWbemObjectEx In objSWbemObjectEx.Associators_(,"Win32_DiskPartition")
Exit For
Next

For Each objSWbemObjectEx In objSWbemObjectEx.Associators_(,"Win32_DiskDrive")
Exit For
Next

WScript.Echo objSWbemObjectEx.DeviceID
End With

Set objFSO = Nothing

WScript.Quit 0
Если файл не будет найден — будет ошибка.

SharkyEXE
04-04-2014, 21:47
Почему напрасно?
Ведь мне надо чем проще тем лучше, так сказать файл-маркер это для меня классика, а серийный номер это уже очень научно
Хотя может быть с серийным номером чем то лучше, чем с файлом-маркером

Iska
04-04-2014, 22:25
SharkyEXE, во всяком случае, поменяйте имя маркерного файла с «1» (которых внезапно может оказаться x штук на логических дисках, а не только на Вашей флэшке) на какой-нибудь более уникальный маркер. Например, на какой-нибудь сгенерированный GUID. И мы закономерно придём к тем же яйцам, только в профиль тому же a-la серийному номеру, ;).

mwz
05-04-2014, 00:53
Iska, как вариант -- метку тома делать уникальной, чтобы маркер под руками не болтался.

SharkyEXE, Правда, полностью стандартный GUID туда вроде не влезает -- но можно сгенерить (http://yandex.ru/yandsearch?text=%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80+GUID&from=os) и вставить первые 32 символа.
И обрабатывать затем эту метку тома.

Или читать тот идентификатор, с которым диск сидит в системе.

Iska
05-04-2014, 14:06
mwz, я и предлагаю пользовать почти то же — серийный номер логического диска, получаемый им при форматировании раздела.

mwz
05-04-2014, 19:08
Iska, ну я просто показать, что вариантов не один: выбор есть. :)

SharkyEXE
05-04-2014, 22:08
2 all
Огромное всем спасибо за помощь.
Тепреь мне не придется каждый раз залазить в Управление дисками и смотреть номер флешки, затем этот номер прописывать в командный файл...
В общем, уважение и почёт автоматизации и всем тем людям, кто помогает в автоматизации действий.
Ура!




© OSzone.net 2001-2012