如何让批处理文件在电子表格中查找笔记本电脑的序列号,并从电子表格中的条目重命名主机名?

时间:2016-06-06 18:15:44

标签: batch-file serialization rename spreadsheet hostname

我与一家为公司重新利用笔记本电脑的公司合作,我们每笔订单的订单约为20-100台笔记本电脑。在我们翻新笔记本电脑本身后,我们在它们上面安装了全新的图像,但是我们在编写自动命名脚本时遇到了问题。我的任务是找到一个可以执行以下操作的脚本:

  1. 从笔记本电脑的BIOS中读取序列号
  2. 将此序列号与电子表格或CSV文件进行比较,然后查找 那里的序列号
  3. 然后,在旁边的列中找到所需的计算机名称 序列号
  4. 最后,使用文件
  5. 中的新名称重命名计算机

    编写一个带有名称和序列号的大型电子表格文件比在CMD提示符中键入每个新名称并单独重新启动每台计算机要容易得多。

    到目前为止,我有以下脚本将序列号用作变量,如果需要:

    for /f "skip=1 delims=" %%J in ('wmic bios get serialnumber') do (set serial=%%J Goto :done) :done

    我们有了这个脚本后,输入%serial%输入特定于该计算机的序列号。

    我也知道以下脚本将使用变量作为新名称重命名计算机:

    wmic computersystem where caption='%computername%' rename %variable%

    %variable%是我们希望在电子表格中找到的变量。我只是不知道如何找到可以在电子表格中找到的新变量(新计算机名称)。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

以下是我用于解决问题的代码。

for /f "tokens=2 delims==" %%J in ('wmic bios get serialnumber /value') do set serial=%%J
Find /I "%serial%" {Location of file} > {Location of confirmation file}
For /f "tokens=1,2* delims=," %%G in ({Location of confirmation file}) do set HN=%%H
wmic computersystem where caption='%computername%' rename %HN%` 

看起来很复杂,但通过文本行,他们会执行以下操作:

1)从bios中找到序列号

2)在CSV文件中查找该行并将整行输出到文本文档

3)将文本文档中的所需名称设置为变量

4)将计算机名重命名为此所需的变量名称