получение ключа продукта виндовс из биоса

Я пытаюсь создать пакетный скрипт для извлечения ключа продукта Windows из BIOS, чтобы компьютер можно было правильно активировать в производственной среде.

Команда, которую я запускаю, чтобы получить ключ, wmic path SoftwareLicensingService get OA3xOriginalProductKey > text.txt

который создает текстовый файл с именем text.txt, который содержит следующее:

OA3xOriginalProductKey         
xxxxx-xxxxx-xxxxx-xxxxx-xxxxx 

(Обратите внимание на несколько случайных пробелов после каждой строки) Проблема в том, что мне нужна ТОЛЬКО часть xxxxx-xxxxx-xxxxx-xxxxx-xxxxx, но мне ужасно тяжело это делать.

Я пробовал следующее:

for /F "skip=10 delims=" %%i in (text.txt) do echo %%i

for /f "tokens=1*delims=:" %%G in ('findstr /n "^" text.txt') do if %%G equ 2 echo %%H

for /f "tokens=*" %%a in (text.txt) do call :processline %%a

:processline
echo line=%*

и последнее но не менее важное

for /F "tokens=2" %%i in (text.txt) do echo %%i %%j %%k

Как я уже сказал, у меня ужасные времена, и я очень новичок в for / f - я понятия не имею, где я ошибаюсь или что делать.


person GrumpyCrouton    schedule 19.07.2016    source источник


Ответы (1)


вы можете использовать for для получения вывода команды.

@echo off
For /f "tokens=2 delims=," %%a in ('wmic path SoftwareLicensingService get OA3xOriginalProductKey^,VLRenewalInterval /value /format:csv') do set key=%%a
echo %key%

Использование другого токена wmic (здесь VLRenewalInterval) — один из нескольких способов избавиться от уродливых окончаний строк wmic (нужный токен не имеет окончания строки).

person Stephan    schedule 19.07.2016