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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Чтение кодов из файла (http://forum.oszone.net/showthread.php?t=279772)

idlazarev_alex@vk 25-03-2014 13:37 2328334

Чтение кодов из файла
 
Здравствуйте! Надо сделать чтение кодов из файла, далее сравнение с кодом, который генерирует скрипт, если код совпадает, то переходит к метке 1, если нет, к 0.
Более понятным языком:
Вот скрипт, он генерирует ключ продукта windows [XXXXX-XXXXX-XXXXX-XXXXX-XXXXX]:

Код:

@echo off
setlocal enabledelayedexpansion

for /f "tokens=3" %%i in ('reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DigitalProductId') do (
    set x=%%~i
)

for /l %%z in (104, 2, 132) do (
    set /a array[%%z]=0x!x:~%%z,2!
)

call :GetKey
echo ProductKey: %GetKey%

endlocal
pause > nul

:GetKey
    setlocal enabledelayedexpansion
    set out=%~0
    set pc=BCDFGHJKMPQRTVWXY2346789
    set x=0
    for /l %%i in (0, 1, 28) do (
        if !x! gtr 28 goto :Break

        set a=0

        for /l %%j in (132, -2, 104) do (
            set /a a=array[%%j] + !a! * 256
            set /a array[%%j]="( !a! / 24 ) & 255"
            set /a a%%=24
            set /a n=%%j
        )

        for %%z in (!a!) do set key=!pc:~%%z,1!!key!
        set /a f="( !x! + 2 ) %% 6"

        if !f! equ 0 if !x! lss 28 (
            set /a x+=1
            set key=-!key!
        )

        <nul set /p sTemp=.
        set /a x+=1
    )
:Break
    echo.
    endlocal & set %out:~1%=%key%

После, ключ должен сравниться со списком из файла, список идёт так:

Код:

XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

, Если совпадение будет с одним из ключей, то переход к метке :1, если нет, то к метке :0!
Заранее спасибо!

Georgio 25-03-2014 16:21 2328409

Код:

>nul findstr /ixc:"%GetKey%" "example.txt"&& goto:1|| goto:0

:0
 color 47
 pause>nul
 exit /b

:1
 color 27
 pause>nul
 exit /b


idlazarev_alex@vk 25-03-2014 19:25 2328476

Georgio, спасибо, но ваша конструкция не сработала, вот доработал:


Код:

findstr /c:"%GetKey%" example.txt && goto :1|| goto :0

:1
cls
echo Find
pause > nul
exit

:0
cls
echo Not Find
pause > nul
exit



Время: 10:19.

Время: 10:19.
© OSzone.net 2001-