37

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?

3
  • 1
    For a laugh you can type mem in a cmd shell, but that won't get you very far :-)
    – Mat
    Jul 26, 2011 at 11:00
  • 1
    What version of windows?
    – EBGreen
    Jul 26, 2011 at 14:26
  • @Mat 941kB in XMS memory, ha ha :-D
    – Tomas
    May 29, 2016 at 17:26

5 Answers 5

49

It takes some time (around 10 seconds for me) but the following command will do it:

systeminfo |find "Available Physical Memory"
4
  • 7
    Note 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
  • 1
    This is an example from my PC showing a screeny of the outcome. Jul 26, 2011 at 11:37
  • 1
    if you just 'find "Memory"' instead it gives a quick overview of all of it. Total, Available, Virtual: Available, Virtual: In Use
    – PsychoData
    Oct 24, 2014 at 13:20
  • 2
    Way too slow... highly not recommended. To show memory it needs to scan entire system.
    – majkinetor
    Mar 9, 2015 at 10:17
20

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
3
  • 1
    Note that the values returned are in kilobytes
    – mic
    Jun 16, 2020 at 16:14
  • 2
    It looks like TotalPhysicalMemory returns bytes, but FreePhysicalMemory returns kilobytes.. Which is a pretty big mindf*ck
    – Lonefish
    Jul 28, 2021 at 13:51
  • The 'wmic' command-line tool is deprecated as of Windows 10 version 21H1 link
    – Spike0xff
    Jul 5, 2023 at 23:50
12

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
6
  • It's worth noting that whilst msinfo32 is usable by non-administrators for this purpose, wmic is not.
    – JdeBP
    Jul 26, 2011 at 14:54
  • 2
    I think that might be a policy issue. I just ran the wmic command just fine as a non-admin.
    – EBGreen
    Jul 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..
    – JdeBP
    Jul 26, 2011 at 15:48
  • 3
    Well, 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.
    – EBGreen
    Jul 26, 2011 at 15:59
  • 4
    Just 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.
    – EBGreen
    Jul 26, 2011 at 16:05
6

How about

typeperf "\Memory\Available Bytes"

in cmd or powershell prompt? You can find other monitoring instances with the command

typeperf -qx "\Memory"
1
  • 1
    Note that the performance counter names are language dependent. Therefore on a non-english system the presented commands will fail.
    – Robert
    Dec 9, 2016 at 13:14
3

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .