如何将wmic memorychip获取SMBIOSMemoryType数值转换为名称DDR并输出到txt文件

问题描述

我目前正在编写脚本,将从 wmic 等收集的信息输出到 txt 文件或 html 文件。

我知道您可以使用命令`wmic memorychip get SMBIOSMemoryType 获取内存类型,即 DDR3、DDR4 等,该命令以数值形式显示类型,即 DDR4 的 26。

但是有没有可以编写的批处理脚本来将值转换为显示 DDR3/DDR4 等并将其输出到变量中。

20 = DDR

21 = DDR2

22 = DDR2 FB-DIMM

24 = DDR3

26 = DDR4

我似乎无法在评论框中添加代码,因此我已将其更新为我发现的内容。

这似乎在原则上可行。

for /F "skip=1" %%E in ('
    wmic memorychip get SMBIOSMemoryType
') do for /F %%F in ("%%E") do set "FF=%%F"
if %FF% equ 26 (
    goto ramtype1
    )
if %FF% equ 24 (
    goto ramtype2
    )
if %FF% equ 21 (
    goto ramtype3
) else (
    goto ramtype4
)

:ramtype1
echo DDR4
pause
exit
:ramtype2
echo DDR3
pause
exit
:ramtype3
echo DDR2
pause
exit
:ramtype4
echo other
pause
exit

Pause

这段代码很相似。

for /F "skip=1" %%E in ('
    wmic memorychip get SMBIOSMemoryType
') do for /F %%F in ("%%E") do set "FF=%%F"
if %FF% equ 26 (
    echo Ram Type is DDR4.
    if %FF% equ 24 (
    echo Ram Type is DDR4.
)
) else (
    echo Unknown
)

需要以上代码才能使用下面或类似的代码。

if /i %opt%==1 echo !CODE HERE! >> "..\NCR_STAGING_LOGS\ASDA%STORENAME%%serial% %MAC%".html

可惜没有太多好看

我通常会使用以下内容来获取 wmic 信息并将其传递给 %variable% 像下面的 %Memtype% 但这显然会输出 26 作为 DDR4。

set torun=wmic memorychip get SMBIOSMemoryType
for /f "tokens=2 delims==" %%a in ('%torun%') do set MemType=%%a

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)