如何使用Java或CMD获取PC硬件信息

Dor*_*thy 6 java windows command-line pc

我正在创建一个Java桌面应用程序,用于报告Windows机器的性能和统计信息(XP,Vista和W7).

使用Java或命令行如何获取以下信息:

  • 制造商(戴尔,惠普...)
  • 模态数
  • 处理器类型
  • 处理器大小
  • 系统类型
  • 储存空间
  • RAM总计
  • RAM免费或使用

如果我找到了我想列出的更多信息,那么这个参考页面会很棒.

Joe*_*oey 10

其中大部分内容应该可以通过WMI查询(systeminfo无论如何,它很可能在引擎盖下使用 - 它只是倾向于收集所有内容而不是特定信息).

我将以下小批量文件一起攻击.不太清楚你对处理器大小的意思- 没有软件会进入计算机机箱并测量芯片尺寸,但也许这很接近.您可以set在批处理文件的末尾执行a 以查看所有已创建的环境变量.也许其中一些有帮助:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "delims=" %%l in ('wmic computersystem get Manufacturer^,Model^,SystemType^,TotalPhysicalMemory /format:list') do >nul 2>&1 set "System_%%l"
for /f "delims=" %%l in ('wmic cpu get * /format:list') do >nul 2>&1 set "CPU_%%l"
for /f "delims=" %%l in ('wmic os get FreePhysicalMemory^,TotalVisibleMemorySize /format:list') do >nul 2>&1 set "OS_%%l"
set /a OS_UsedPhysicalMemory=OS_TotalVisibleMemorySize-OS_FreePhysicalMemory

for /f "delims=" %%l in ('wmic volume get DriveLetter^,FreeSpace /format:list') do (
    >nul 2>&1 set "TEMP_%%l"
    if "!TEMP_DriveLetter:~1,1!"==":" if defined TEMP_FreeSpace set StorageSpace_!TEMP_DriveLetter:~0,2!=!TEMP_FreeSpace:~0,-1!&set TEMP_DriveLetter=&set TEMP_FreeSpace=
)

echo Manufacturer: %System_Manufacturer%
echo Model: %System_Model%
echo Processor Type: %PROCESSOR_ARCHITECTURE%
echo Processor Size: %CPU_AddressWidth%
echo System Type: %System_SystemType%
echo Storage Space:
set StorageSpace_
echo RAM total: %OS_TotalVisibleMemorySize% KiB
echo RAM free: %OS_FreePhysicalMemory% KiB
echo RAM used: %OS_UsedPhysicalMemory% KiB
Run Code Online (Sandbox Code Playgroud)

附注:这不受特定于语言环境的限制,因此它应该在任何地方都可以使用(例如,与之类似dir | find "free").代码可以在我的SVN存储库中找到.


小智 6

生产厂家

systeminfo | find "System Manufacturer"
Run Code Online (Sandbox Code Playgroud)

型号

systeminfo | find "System Model"
Run Code Online (Sandbox Code Playgroud)

处理器类型

echo %PROCESSOR_IDENTIFIER% %PROCESSOR_LEVEL%
Run Code Online (Sandbox Code Playgroud)

处理器大小

systeminfo | find "Processor"
Run Code Online (Sandbox Code Playgroud)

系统类型

systeminfo | find "System type"
Run Code Online (Sandbox Code Playgroud)

储存空间

dir | find "free"
Run Code Online (Sandbox Code Playgroud)

要么

fsutil volume diskfree C:
Run Code Online (Sandbox Code Playgroud)

RAM总计

systeminfo | find "Total Physical Memory"
Run Code Online (Sandbox Code Playgroud)

RAM免费或使用

systeminfo | find "Available Physical Memory"
Run Code Online (Sandbox Code Playgroud)