*nix `free` 或 DOS `mem` 等效于 Windows 7(64 位)

igl*_*vzx 5 memory windows-7 64-bit command-line

*nix系统上,free显示系统中可用和已用内存的总量。根据我的研究,DOSmem命令类似,但它在 64 位版本的 Windows 7 上不可用。该mem命令是否有内置替代方案?

Bob*_*Bob 8

请注意,所有这些都返回千字节。

wmic 方法

wmic os get TotalVisibleMemorySize,FreePhysicalMemory
Run Code Online (Sandbox Code Playgroud)

我不确定 TotalVisibleMemorySize 是否正确,但它似乎确实显示了我系统上的物理内存。


VBScript 方法

http://msdn.microsoft.com/en-us/library/windows/desktop/aa394587%28v=vs.85%29.aspx

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings 
    Wscript.Echo "Available Physical Memory: " & _
        objOperatingSystem.FreePhysicalMemory
Next
Run Code Online (Sandbox Code Playgroud)

PowerShell 方法

http://msdn.microsoft.com/en-us/library/windows/desktop/aa394587%28v=vs.85%29.aspx

# Get-FreeMemory.ps1
# Sample using PowerShell
# 1st sample from http://msdn.microsoft.com/en-us/library/aa394587
# Thomas Lee

$mem = Get-WmiObject -Class Win32_OperatingSystem

# Display memory
"System : {0}" -f $mem.csname
"Free Memory: {0}" -f $mem.FreePhysicalMemory
Run Code Online (Sandbox Code Playgroud)

此脚本产生以下输出:

PS C:\foo> .\get-freememory.ps1
  System : COOKHAM8
  Free Memory: 2776988
Run Code Online (Sandbox Code Playgroud)

PowerShell 精简版(从 cmd 调用)

powershell.exe -c (Get-WmiObject -Class Win32_OperatingSystem).FreePhysicalMemory
Run Code Online (Sandbox Code Playgroud)

  • 根据 [规范](http://msdn.microsoft.com/en-us/library/windows/desktop/aa394239(v=vs.85).aspx),TotalVisibleMemorySize 给出了操作系统可见的内存量,这是物理内存减去硬件保留的任何内容。 (2认同)