从 bios 获取 windows 产品密钥

getting windows product key from bios

我正在尝试制作批处理脚本以从 BIOS 中提取 windows 产品密钥,以便计算机可以在生产环境中正确激活。

我是运行获取密钥的命令是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 非常菜鸟 - 我不知道我哪里出错了,也不知道该怎么做。

您可以使用 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 行尾(所需标记没有行尾)的几种方法之一。