Показать полную графическую версию : Батник проверяющий S/N(серийник) HDD или Flash
Возможно ли что бы батник сверял сернийик флешки и если он правильный то выполнение пойдет дальше если он не правильный то выход????
ofcoss, что то подобное было где то на форуме. Надо только поискать.
Maza Faka
18-07-2009, 11:08
ofcoss
Пример:
@Echo Off
Set nDrive=G:
Set nSerialRight=1234-5678
Set nSerialNew=
For /F "Skip=1 Tokens=2 Delims=:" %%A In ('Vol %nDrive%') Do Set nSerialNew=%%A
Set nSerialNew=%nSerialNew: =%
::Echo %nSerialNew%
If /I Not %nSerialRight%==%nSerialNew% GoTo :EOF
т.е. я вписываю в Set nSerialRight свой серийник и он должен запуститься?
и как посмотреть серийник флешки чет я его так и не нашел даж everest не видит
вписываю в Set nSerialRight серийник, в итоге ошибка
вписываю в Set nSerialRight серийник, в итоге ошибка »
В каком формате вписываешь серийник и в какой среде запускаешь. Возможно это определяющие факторы.
Set nSerialRight=PLLX7IQL Windows vista
Set nSerialRight=PLLX-7IQL то же не работает
запускаю с флехи,полный код
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\marker.fle set inst_flash=%%i:
Set nDrive=inst_flash:
Set nSerialRight=PLLX7IQL
Set nSerialNew=
For /F "Skip=1 Tokens=2 Delims=:" %%A In ('Vol %nDrive%') Do Set nSerialNew=%%A
Set nSerialNew=%nSerialNew: =%
::Echo %nSerialNew%
If /I Not %nSerialRight%==%nSerialNew% GoTo :EOF
Set nDrive=inst_flash:
Set nSerialRight=PLLX7IQL»
Должно быть:Set nDrive=%inst_flash%
Set nSerialRight=PLLX-7IQL
PS
ofcoss, заключайте строки кода в теги [Code], значок # сверху панели "Быстрого ответа".
ofcoss,
в предложенных вариантах используется SN тома, а не диска, поэтому нужно иметь ввиду:
- после форматирования SN тома изменится;
- SN тома можно задать/изменить при помощи утилит типа VolumeID
А возможнали проверка именно по с.номеру????
А возможнали проверка именно по с.номеру???? »
При смене версии и языка Винды формат сообщения команды VOL изменится и скрипт работать правильно не будет!
под рускоязычной XP "прокатывает" следующее:
for /F "skip=1 tokens=4" %%S in ('vol C:') do echo %%S
но лучше чуть-чуть подстраховаться и использовать так:
@echo off
for /F "skip=1 tokens=*" %%S in ('vol C:') do set T=%%S
:loop
for /F "tokens=1*" %%S in ("%T%") do (
set T=%%T
set SN=%%S
)
if not "%T%"=="" goto loop
echo %SN%
А возможнали проверка именно по с.номеру?»
AFAIK только для ATA/SCSI. Например, есть CMD-утилита DiskId32 (http://www.winsim.com/diskid32/diskid32.html).
Set nSerialRight=PLLX7IQL Windows vista
Set nSerialRight=PLLX-7IQL то же не работает »
Сразу не заметил - такого ID у логического диска быть не может. У метки диска - пожалуйста. А "серийник" - это 4 байта, выводимые в 16-ричном виде, т.е. "Volume Serial Number" может состоять только из набора цифр и символов от A до F.
* если набрать просто команду DIR, то в верхней строке видна Метка логического диска (обычно текст до 11 символов), а во второй - серийный номер.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.