如何让计算机名称改为序列号,将计算机名更改为BIOS序列号的WMIC命令

我是新的批处理文件和wmic,并在研究StackOverflow后发现有几个答案重叠但不能产生预期输出时放在一起。将计算机名更改为BIOS序列号的WMIC命令

问题:

创建一个批处理文件来更改计算机名称(而不是在结构域):

使用wmic bios get serialnumber并将该值分配给变量comp_name,然后显示该变量的值;

将计算机名称更改为变量comp_name的值;

因此,对于1:

FOR /F %%F IN ('wmic bios get serialnumber') DO (

SET comp_name=%%F

)

ECHO %comp_name%

2:

WMIC computersystem where name="%computername%" rename name=%%comp_name%%

编辑如下:有一个1部分正确的 - 按预期工作 - 获取序列号,并显示该变量的值。然而第2部分仍引发错误:

O:\>wmic computersystem where name="TOM-PC" rename NAME=

Invalid named parameter list.

Hint: ::= | where ::= =

如果我理解正确的是 - 最后命令的NAME=...部分不认变量初始化以上。那么如何使用comp_name作为wmic命令的参数呢?

编辑0.2

“你为什么要使用一倍名称%=迹象%% COMP_NAME %%?”通过aschipfl - 我恢复到我原来的问题 - 使用双%,现在得到不同的错误 - 87,这告诉我更多关于这个问题。使用单打%会产生上面列出的错误。我不确定问题出在单人还是双人%或其他地方。

编辑0.3

进一步研究表明wmic bios get serialnumber回报其实三个值中的每一个新行

C:\Windows\system32>wmic bios get serialnumber

SerialNumber

BY3VF02

那就是 - SerialNumber字符串,然后在新的生产线的实际序号和最后一个只空行。所以(我希望)最后的问题 - 如何只给我的变量分配第二个值?

2016-11-08

Traconis

+0

的'@''在ECHO%@ COMP_NAME%'符号是一个错字,对不对?为什么在'name = %% comp_name %%'中使用加倍的'%'符号?在你的'FOR/F'循环中,你需要将你的'wmic'命令行放在''''中,例如'('wmic bios get serialnumber')',并移除'USEBACKQ'选项! –

+0

确定第一次编辑在变量声明中忘记了@ –

+0

在你的问题中@ @东西仍然不一致;我会简单地删除它...另一件事:我认为'wmic'不具有'rename'动词,也许你的意思是'set';无论如何,'Name'属性是只读的,所以你不会像这样成功... –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值