繁体   English   中英

Windows 批量 wmic OS 获取 FreePhysicalMemory

[英]Windows Batch wmic OS get FreePhysicalMemory

我尝试编写一个批处理文件,它给了我免费的物理 memory。 此批处理应每 X 秒在文本文件中写入时间戳和以下命令:

wmic OS get FreePhysicalMemory

我的批处理文件如下所示:

:loop
(
@echo %time% %date%  
wmic OS get FreePhysicalMemory /Value
)>testMEMORY.txt
timeout /t 10 
goto loop

这是 output:

13:54:54,76 04.11.2019  




 F r e e P h y s i c a l M e m o r y = 7 2 0 6 6 4 8 

我不明白,为什么我有很多新行,每个字符后面都有一个空格。 有人可以帮我吗?

WMIC的output是unicode!

可以通过另一个FOR /F循环传递值来删除尾随<CR>

这也删除了幻影“空白”行(实际上是<CR>

@echo off
If Exist testMEMORY.txt Del testMEMORY.txt
:loop
(
    @echo %time% %date%  
    for /f "skip=1 delims=" %%a in ('wmic OS get FreePhysicalMemory /Value') do (
        for /f "delims=" %%b in ("%%a") do (
            echo %%b
        )
    )
)>>testMEMORY.txt
timeout /t 10 /nobreak>nul 
goto loop

所以,我在testMEMORY.txt中得到了类似的结果:

 15:32:19.02 04/11/2019 FreePhysicalMemory=528592 15:32:29.19 04/11/2019 FreePhysicalMemory=530804 15:32:39.14 04/11/2019 FreePhysicalMemory=531156 15:32:49.21 04/11/2019 FreePhysicalMemory=530968 15:32:59.16 04/11/2019 FreePhysicalMemory=531936 15:33:09.23 04/11/2019 FreePhysicalMemory=530376 15:33:19.18 04/11/2019 FreePhysicalMemory=524980 15:33:29.16 04/11/2019 FreePhysicalMemory=521816 15:33:39.21 04/11/2019 FreePhysicalMemory=465820 15:33:49.17 04/11/2019 FreePhysicalMemory=461312 15:33:59.17 04/11/2019 FreePhysicalMemory=385172 15:34:14.21 04/11/2019 FreePhysicalMemory=529800 15:34:24.13 04/11/2019 FreePhysicalMemory=541064

由于您的命令 output 几乎不可能包含 UTF-16 之外不可用的字符,因此我将提供这个简单的修复程序,在我看来它将提供可接受的 output。

:Loop
@>"testMEMORY.txt" (    Echo %TIME% %DATE%
    WMIC OS Get FreePhysicalMemory /Value|Find "=")
@Timeout 10 >NUL 
@GoTo Loop

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM