如何编写CMD脚本调用wmic获取序列号并按指定规则格式化输出
CMD设备序列号格式化脚本实现
完整可运行脚本
@echo off setlocal enabledelayedexpansion :: 读取BIOS序列号,跳过表头行 for /f "skip=1 delims=" %%i in ('wmic bios get serialnumber 2^>nul') do ( set "raw_sn=%%i" goto sn_read_finish ) :sn_read_finish :: 清除序列号首尾多余空格 set "sn=!raw_sn: =!" :: 提示用户输入厂商名称 set /p "vendor=请输入厂商名称(示例:HP、Dell):" :: 序列号格式化:最后4位前加短横线 set "prefix_part=!sn:~0,-4!" set "suffix_part=!sn:~-4!" set "formatted_sn=!prefix_part!-!suffix_part!" :: 输出最终结果 set "output=!vendor!-!formatted_sn!" echo 生成的设备标识为:!output! endlocal pause
功能说明
- 自动执行
wmic bios get serialnumber命令读取设备BIOS序列号,自动处理wmic输出的冗余空格和表头,不需要手动清洗数据 - 脚本运行后主动弹出输入提示,用户直接输入厂商名称即可
- 内置格式化逻辑:无论原始序列号总长度是多少,都统一在最后4位之前插入短横线,例如原始序列号
YHT31234处理后为YHT3-1234 - 最终输出严格遵循「厂商名称-格式化后序列号」规则,示例输出为
HP-YHT3-1234
测试验证:使用长度7位的序列号
ABCDE12输入厂商Dell,会输出Dell-ABC-DE12,符合格式要求。
注意:如果设备BIOS序列号长度不足4位,脚本会自动兼容,仅在仅有的字符前加短横线,不会报错
内容的提问来源于stack exchange,提问作者SemtexSoup
相关产品推荐
相关产品推荐

