wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Format:Textvaluelist > Output.txt
批量使用上面的命令,输出为
FreePhysicalMemory=1140860
TotalVisibleMemorySize=2095492
我想在等号(=)之后添加一个空格,看起来像是;
FreePhysicalMemory= 1140860
TotalVisibleMemorySize= 2095492
我正在尝试下面但却收到错误:命令的语法不正确
For /F "tokens=1 delims==" %%A in ('wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Format:Textvaluelist') do
echo %%A %%B > Output.txt
或者是否有其他方法可以使用批处理以所需格式获取输出?
答案 0 :(得分:2)
Wmic可能是一个奇怪的野兽。这适用于Windows 8 32位。
需要额外的代码来移除尾随的回车。
@echo off
setlocal enabledelayedexpansion
(For /F "tokens=1,* delims==" %%A in ('"wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /value |find "M" "') do (
set "line=%%A= %%B"
set "line=!line:~0,-1!"
echo !line!
))>output.txt
答案 1 :(得分:2)
首先,您会考虑将WMIC
输出编码从Unicode
转换为ANSI
以省略unicode字符(如空回声),执行此操作的一个简单方法是使用FIND/FINDSTR
命令,在应用输出过滤器之后,您只需要使用FOR /F
读取输出,以使用所需的tokens
值和delims
分隔符来分割字符串。< / p>
以下是代码:
@Echo OFF
(For /F "Tokens=1,* Delims==" %%A in (
'wmic OS get FreePhysicalMemory^,TotalVisibleMemorySize /Format:list ^| FINDSTR "[0-9]"'
)DO (
Echo %%A= %%B
))>"File.txt"
Pause&Exit