Как выполнить математические операции после использования команды findstr в файле .cmd?

Как можно вывести объем оперативной памяти в гигабайтах с использованием файла пакетных команд (.bat)?
  • 20 февраля 2024 г. 13:48
Ответы на вопрос 2
Для выполнения математических операций после использования команды findstr в файле .cmd, вам необходимо сохранить результат findstr в переменную и затем использовать эту переменную в операции. Пример:

```
@echo off
setlocal

rem Находим строку с нужной информацией и сохраняем в переменную
for /f "delims=" %%a in ('findstr "search term" file.txt') do set result=%%a

rem Выполняем математическую операцию с сохраненным результатом
set /a result=%result% * 2
echo Результат: %result%

endlocal
```

Чтобы вывести объем оперативной памяти в гигабайтах с использованием файла пакетных команд (.bat), вы можете использовать команду systeminfo и фильтровать результаты с помощью findstr. Пример:

```
@echo off
setlocal

rem Получаем информацию о системе и фильтруем результаты для нахождения строки с объемом оперативной памяти
for /f "tokens=2 delims=," %%a in ('systeminfo ^| findstr /i "Total Physical Memory"') do set memory=%%a

rem Преобразуем объем памяти в гигабайты и выводим результат
set /a memory=%memory:~1,-3% / 1024 / 1024
echo Объем оперативной памяти: %memory% GB

endlocal
``` 

Оба эти скрипта позволят вам выполнять математические операции и работать с выводом команд в файле .cmd или .bat.
PowerShell не рассматривается как вариант? 
# объем по-модульно
Get-WmiObject Win32_PhysicalMemory | ft BankLabel,@{Label="Capacity"; Expression={$_.Capacity / 1GB}} -a

# суммарный объем RAM
Get-WmiObject Win32_PhysicalMemory | Measure-Object -Property capacity -Sum | Foreach {"{0:N2}" -f ([math]::round(($_.Sum / 1GB),2))}
Похожие вопросы