Пакетная операционная система Windows получает FreePhysicalMemory - PullRequest
2 голосов
/ 04 ноября 2019

Я пытаюсь написать командный файл, который дает мне свободную физическую память. Этот пакет должен записывать каждые X секунд метку времени и следующую команду в текстовом файле:

wmic OS get FreePhysicalMemory

Мой пакетный файл выглядит следующим образом:

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

Это вывод:

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 

Я не понимаю, почему у меня много новых строк и после каждого символа пробел. Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Поскольку практически нет шансов, что выходные данные вашей команды будут содержать символы, недоступные вне UTF-16, я бы предложил это простое исправление, которое, по моему мнению, обеспечило бы приемлемый вывод.

:Loop
@>"testMEMORY.txt" (    Echo %TIME% %DATE%
    WMIC OS Get FreePhysicalMemory /Value|Find "=")
@Timeout 10 >NUL 
@GoTo Loop
2 голосов
/ 04 ноября 2019

Вывод WMIC - это Unicode!

Трейлинг <CR> можно удалить, передав значение через другой цикл FOR /F.

Это также удаляет фантомную «пустую» строку(на самом деле <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
...