@echo on
set LOGFILE=C:\tmp\log.txt
rem RAM
for /f %%m in ('wmic MEMORYCHIP get CAPACITY ^| findstr /v /i ^| findstr /v "^$" ' ) do (
rem тут нужна математика. Но как бы я не пробовал (set /a например) поделить %%m не получается.
set "t=%%m\1073741824"
)
echo "RAM=%t% GB" >> %LOGFILE%
# объем по-модульно
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))}