I am looking for a command that returns the available physical memory in Windows. I tried "systeminfo" but it takes too long and returns a lot of unnessesary information for me. If there is not any command for this what would be the best way to obtain it in a different way using command prompt?
5 Answers
It takes some time (around 10 seconds for me) but the following command will do it:
systeminfo |find "Available Physical Memory"
-
7Note that this depends on your OS language. My above example works for English OSes. For example, for a Turkish OS, the following command line should be used:
systeminfo |find "Kullanılabilir Fiziksel Bellek"
Jul 26, 2011 at 11:32 -
1This is an example from my PC showing a screeny of the outcome. Jul 26, 2011 at 11:37
-
1if you just 'find "Memory"' instead it gives a quick overview of all of it. Total, Available, Virtual: Available, Virtual: In Use Oct 24, 2014 at 13:20
-
2Way too slow... highly not recommended. To show memory it needs to scan entire system. Mar 9, 2015 at 10:17
This will do it without taking 10 secs. Try this:
For Total Physical Memory
wmic ComputerSystem get TotalPhysicalMemory
For Available Physical Memory:
wmic OS get FreePhysicalMemory
-
1
-
2It looks like TotalPhysicalMemory returns bytes, but FreePhysicalMemory returns kilobytes.. Which is a pretty big mindf*ck– LonefishJul 28, 2021 at 13:51
-
Well if you are on Windows 7, you can use this at the powershell prompt:
(Get-WMIObject Win32_PhysicalMemory | Measure-Object Capacity -Sum).sum
Or if you want a nice pretty how many gigs is it:
(Get-WMIObject Win32_PhysicalMemory | Measure-Object Capacity -Sum).sum/1GB
Or if you are on an older version of windows (or W7 for that matter) at the command prompt:
wmic memorychip get capacity
-
It's worth noting that whilst
msinfo32
is usable by non-administrators for this purpose,wmic
is not.– JdeBPJul 26, 2011 at 14:54 -
2I think that might be a policy issue. I just ran the wmic command just fine as a non-admin.– EBGreenJul 26, 2011 at 15:08
-
No, it's not a policy issue. It fails on non-domain machines as well. The message that you'll see as a non-administrator is
Only the administrator group members can use WMIC.EXE.
.– JdeBPJul 26, 2011 at 15:48 -
3Well, I'm not an admin and I did not see that message. Instead I saw the capacity of the two memory sticks installed on that machine.– EBGreenJul 26, 2011 at 15:59
-
4Just checked to be sure and the user ID I was logged in with is not a member of the local Administrators group, nor is it a member of any of the AD groups that are local admins.– EBGreenJul 26, 2011 at 16:05
How about
typeperf "\Memory\Available Bytes"
in cmd or powershell prompt? You can find other monitoring instances with the command
typeperf -qx "\Memory"
-
1Note that the performance counter names are language dependent. Therefore on a non-english system the presented commands will fail.– RobertDec 9, 2016 at 13:14
You already know about systeminfo
, as per the question. And as Mat noted in a comment, the mem
command doesn't tell you what you want to know.
JP Software's TCC/LE has the built-in MEMORY
command, which operates thus:
[C:\]memory 30 % Memory load 3,471,441,920 bytes total physical RAM 2,428,456,960 bytes available physical RAM 5,440,962,560 bytes total page file 4,505,726,976 bytes available page file 2,147,352,576 bytes total virtual RAM 2,053,435,392 bytes available virtual RAM 262,144 characters total alias 262,143 characters free 20,480 characters total history [C:\]
It also has the @WINMEMORY[]
variable function, which can be used in various ways:
[C:\]echo There are %@COMMA[%@WINMEMORY[2]] available bytes physical RAM. There are 2,456,285,184 available bytes physical RAM. [C:\]
Bundled with Windows comes the msinfo32
command, whose output can be restricted more narrowly than that of systeminfo
:
msinfo32 /categories +systemsummary
There are a whole load of other utilities, from various people, that can report the same information.
mem
in acmd
shell, but that won't get you very far :-)