用于设置WInow Env变量的单行命令

时间:2016-08-13 17:30:57

标签: command wmic

我正在寻找可以从BIOS中提取信息并将其作为Windows中的计算机范围环境变量存储的单行命令。像这样:

for /f "skip=1" %i IN ('wmic bios get serialnumber') DO @if not defined _A @echo %i&set _A=1) &set BIOSTag=%i

我曾经做过一次这项工作,但它只将它存储为一个临时变量,而不是整个机器范围,当然也不是持久性的。最终目标是让我的应答文件(或无人参与文件)在专业化通过期间使用此命令从BIOS中提取SerialNumber或IdentificationCode(我认为是您可以手动指定的AssetTag)并将其存储为永久环境变量,然后是" amd64_Microsoft-Windows-Shell-Setup_neutral"将ComputerName指定为:"%BIOSTag%-string"。

理论上,这应该可行,因为我目前能够以类似的方式使用%Date%来修改PC"描述" “系统”菜单上的字段,用于反映我对机器进行成像的日期。

如上所示,到目前为止,我的命令非常脏,但它可以作为临时变量。如果我尝试在末尾替换SetX *var* %i /M以使其成为永久环境变量,则命令执行但似乎没有任何变化,并且我无法回显该变量。

1 个答案:

答案 0 :(得分:0)

道歉!经过几个小时的测试,似乎我忘了清除该命令行中的_A临时变量。以下单行程序从BIOS中提取我的ServiceTag并将其保存为%BIOSTAG%永久机器环境变量:

for /f "skip=1" %i IN ('wmic bios get serialnumber') DO @if not defined _A @echo %i&set _A=1) &SETX BIOSTAG %i /M

她不漂亮,但她会这样做。 :-)现在用一个答案文件进行测试,看看我是否可以使用%BIOSTAG% - 后缀生成适当命名的机器!如果是这样,我们可以使用BIOS中的可自定义AssetTag字段来自动命名机器。无论如何,我们必须使用新机器手动配置BIOS,这样并不困难。现在唯一的问题是,对于IdentificationCode的WMIC查询是否从Dell BIOS中提取AssetTag字段数据...

我希望这篇文章可以在将来帮助某人!