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
或者是否有其他方法可以使用批处理以所需的格式获得输出?
发布于 2013-10-19 06:09:09
首先,您将考虑将WMIC
输出编码从Unicode
转换为ANSI
到ommit unicode字符(就像空回波一样),一个简单的技巧就是使用FIND/FINDSTR
命令过滤输出,在应用了输出过滤器之后,只需使用FOR /F
读取输出以使用所需的tokens
值和delims
分隔符拆分字符串。
以下是代码:
@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
发布于 2013-10-19 05:05:08
可能是一只奇怪的野兽。这在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
https://stackoverflow.com/questions/19462042
复制相似问题