首页 > 解决方案 > wmic 输出到文件而没有额外的行问题

问题描述

我查看了所有这些主题和帖子:

主题:https ://superuser.com/questions/1082530/how-can-i-remove-the-last-blank-line-of-a-wmic-command

主题:如何从 wmic 输出中删除空行?

主题:解析 WMIC 输出

帖子: https ://stackoverflow.com/a/37725658/8262102

到目前为止,没有任何帮助,他们中的大多数人都习惯findstr /r /v "^$"这样做。

它们的问题在于,在我的情况下,输出在写入文件时包含额外的一行。

我想要的文件输出应该是:

[Microsoft Windows 10 Pro]

但我得到:

[Microsoft Windows 10 Pro
]

这是我的代码,它将在您的桌面上创建输出文件:

@echo off
Setlocal EnableDelayedExpansion
cd /d "C:\Users\%username%\Desktop"
(
  for /f "skip=1 delims=" %%A in (
    'wmic OS get Caption ^| findstr /r /v "^$"'
    ) do echo [%%A]
  )>output.txt && exit

任何帮助将不胜感激。

标签: batch-filecmdwmic

解决方案


最简单的解决方案是更改的输出格式:

    For /F Tokens^=6Delims^=^" %%A In (
        '"%__AppDir__%wbem\WMIC.exe" OS Get Caption /Format:MOF'
    ) Do Echo [%%A]

上面的答案对所提出的问题有效,该问题从一个特定值返回字符串结果。根据您的附加信息,它不再有效,但这不是代码的错,而是您无法提出正确的问题。

对于您正在寻找的特定值,即ManufacturerNameDescriptionCurrentClockSpeedNumberOfCoresNumberOfLogicalProcessors,我会建议使用完全不同的方法,使用

$c = GCIM "Win32_Processor"
$o = ForEach ($i in $c) {
    "Manufacturer:                 " + $i.Manufacturer
    "Name:                         " + $i.Name
    "Description:                  " + $i.Description
    "Current Clock Speed:          " + $([Math]::Round($i.CurrentClockSpeed/1000,2)) + " GHz"
    "Number Of Cores:              " + $i.NumberOfCores
    "Number Of Logical Processors: " + $i.NumberOfLogicalProcessors
}
$o | Out-File ".\CPUInfo.txt"

为了使用标签保持主题,这是一个利用

@"%__AppDir__%WindowsPowerShell\v1.0\powershell.exe" -NoP ^
  "$c = GCIM 'Win32_Processor';" ^
  "$o = ForEach ($i in $c) {" ^
    "\"Manufacturer:                 \" + $i.Manufacturer;" ^
    "\"Name:                         \" + $i.Name;" ^
    "\"Description:                  \" + $i.Description;" ^
    "\"Current Clock Speed:          \" + $([Math]::Round($i.CurrentClockSpeed/1000,2)) + \" GHz\";" ^
    "\"Number Of Cores:              \" + $i.NumberOfCores;" ^
    "\"Number Of Logical Processors: \" + $i.NumberOfLogicalProcessors};" ^
  "$o | Out-File \".\CPUInfo.txt\""

推荐阅读