Большая часть этого должна быть доступна для запросов с помощью WMI (это то, что systeminfo
в любом случае, скорее всего, использует под капотом — он просто имеет тенденцию собирать все, а не конкретную информацию).
Я взломал следующий небольшой пакетный файл. Не совсем уверен, что вы имеете в виду под Размером процессора — никакое программное обеспечение не будет входить в корпус компьютера и измерять размеры кристалла, но, возможно, это близко. Вы можете сделать set
в конце командного файла, чтобы просмотреть все созданные переменные среды. Может быть, некоторые из них помогут:
@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
Примечание: это не зависит от локали, поэтому оно должно работать везде (в отличие, например, от таких вещей, как dir | find "free"
). Код можно найти в моем репозитории SVN.
person
Joey
schedule
22.06.2011