batch-file - 如何在文本文件上格式化批处理命令结果
问题描述
我正在使用下面的批处理脚本检索计算机信息,
(
systeminfo | findstr /c:"Host Name" /c:"Domain" /c:"OS Name" /c:"OS Version" /c:"System Manufacturer" /c:"System Model" /c:"System type" /c:"Total Physical Memory" /c:"Available Physical Memory"
wmic bios get serialnumber
) > "getPCinfo.txt"
然后文本文件上的结果是
Host Name: Host
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
System Manufacturer: Dell Inc.
System Model: Latitude 7480
BIOS Version: Dell Inc. 1.7.3, 10/11/2017
Total Physical Memory: 8,077 MB
Available Physical Memory: 2,450 MB
Domain: Domain.Domain.Domain.net
S e r i a l N u m b e r
3 R K 5 M H 2
我可以知道如何将序列号格式化为与以前的信息相同的格式,例如:-
S e r i a l N u m b e r : 3 R K 5 M H 2
解决方案
我不喜欢脚本中过长的行 - 你太快失去概述。
此批处理使用 findstr 的默认 RegEx 模式,以行开头的锚点,/B
并用点替换搜索字符串中的空格。
:: Q:\Test\2018\06\22\Get-PCInfo.cmd
@Echo off
FOR /F "tokens=1,2 delims==" %%A IN ('
wmic bios get serialnumber /value ^|find /I "serialnumber"
') DO For %%C in (%%B) Do Set "BIOS=%%A: %%C"
Set "Find=Host.Name Domain OS.Name OS.Version System.Manufacturer"
Set "Find=%Find% System.Model System.type Total.Physical.Memory"
Set "Find=%Find% BIOS.Version Available.Physical.Memory"
( systeminfo | findstr /I /B "%Find%"
Echo=%BIOS%
) >getPCinfo.txt
样本输出:
> type getPCinfo.txt
Host Name: HOST
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
System Manufacturer: System manufacturer
System Model: System Product Name
System Type: x64-based PC
BIOS Version: American Megatrends Inc. 1408 , 09/21/2010
Total Physical Memory: 24.566 MB
Available Physical Memory: 14.753 MB
Domain: Doamin
SerialNumber: Number
推荐阅读
- python - 在单词级别测量分类器的准确性
- javascript - 如何在javascript函数参数中回显带有特殊字符的php字符串
- javascript - mattab 之间的动态 URL 导航
- javascript - 如何从 ApexCharts 获取 URI 以下载 PDF?
- scala - 从对象动态调用scala方法
- java - 使用 Java REST API 接收两次相同的参数名称
- google-apps-script - 我的 if 语句似乎没有输出任何东西
- java - 如何在 scollview 中的图像上方添加 textview?
- html - 由于右侧的 Hamburger-Icon,徽标向左移动
- yocto - u-boot bbappend 导致文件系统损坏