Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Батник проверяющий S/N(серийник) HDD или Flash (http://forum.oszone.net/showthread.php?t=145489)

ofcoss 18-07-2009 09:01 1171183

Батник проверяющий S/N(серийник) HDD или Flash
 
Возможно ли что бы батник сверял сернийик флешки и если он правильный то выполнение пойдет дальше если он не правильный то выход????

jentoso 18-07-2009 10:14 1171207

ofcoss, что то подобное было где то на форуме. Надо только поискать.

Maza Faka 18-07-2009 11:08 1171227

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


ofcoss 18-07-2009 19:21 1171468

т.е. я вписываю в Set nSerialRight свой серийник и он должен запуститься?

и как посмотреть серийник флешки чет я его так и не нашел даж everest не видит

ofcoss 18-07-2009 20:29 1171502

вписываю в Set nSerialRight серийник, в итоге ошибка

jentoso 18-07-2009 22:13 1171557

Цитата:

Цитата ofcoss
вписываю в Set nSerialRight серийник, в итоге ошибка »

В каком формате вписываешь серийник и в какой среде запускаешь. Возможно это определяющие факторы.

ofcoss 18-07-2009 22:32 1171567

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

gora 19-07-2009 09:39 1171744

Цитата:

Цитата ofcoss
Set nDrive=inst_flash:
Set nSerialRight=PLLX7IQL»

Должно быть:
Код:

Set nDrive=%inst_flash%
Set nSerialRight=PLLX-7IQL

PS
ofcoss, заключайте строки кода в теги [code], значок # сверху панели "Быстрого ответа".

amel27 20-07-2009 07:45 1172467

ofcoss,
в предложенных вариантах используется SN тома, а не диска, поэтому нужно иметь ввиду:

- после форматирования SN тома изменится;
- SN тома можно задать/изменить при помощи утилит типа VolumeID

ofcoss 21-07-2009 16:59 1173747

А возможнали проверка именно по с.номеру????

NiOl 21-07-2009 18:13 1173811

Цитата:

Цитата ofcoss
А возможнали проверка именно по с.номеру???? »

При смене версии и языка Винды формат сообщения команды 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%


amel27 22-07-2009 16:05 1174717

Цитата:

Цитата ofcoss
А возможнали проверка именно по с.номеру?»

AFAIK только для ATA/SCSI. Например, есть CMD-утилита DiskId32.

NiOl 22-07-2009 18:39 1174870

Цитата:

Цитата ofcoss
Set nSerialRight=PLLX7IQL Windows vista
Set nSerialRight=PLLX-7IQL то же не работает »

Сразу не заметил - такого ID у логического диска быть не может. У метки диска - пожалуйста. А "серийник" - это 4 байта, выводимые в 16-ричном виде, т.е. "Volume Serial Number" может состоять только из набора цифр и символов от A до F.
* если набрать просто команду DIR, то в верхней строке видна Метка логического диска (обычно текст до 11 символов), а во второй - серийный номер.


Время: 13:59.

Время: 13:59.
© OSzone.net 2001-2025