SoFunction
Updated on 2025-04-09

Code for obtaining hardware information in pure batch processing

Let me first state: I will continue to update the code in private, and only if I update it significantly will upload it here (the core code is basically complete at present)!

Compatible with XP Win7 Win8 Win10

Features of this program:

Updated content:

1. Solved the problem of inaccurate acquisition of network card information that many netizens have reported, and it is basically perfect now.
2. Adjust the code structure, optimize the efficiency and logical order (basically equivalent to rewriting it)
3. Solved the crash that happened in various situations before. Now, as long as the code is not changed, it will basically not crash.
Finally, the computer system is diverse and complex, which is not a perfect version. I hope everyone will test and provide bug screenshots. In the future, they will be updated according to your test results.
My QQ: 540044977 If you want to get the latest version in real time, you can add friends to ask for it. Like-minded friends are welcome to come and communicate.

Here is the code:

@echo off
mode con cols=82 lines=25
Setlocal EnableDelayedExpansion
call :Inspect
title Get hardware information - Retrieving relevant information,Please wait...
echo !Tit!
echo .............................................................
echo.
DxDiag /t %Temp%\
Ping >nul
if %errorlevel%==0 set NetWorking=Connected to the Internet
if %errorlevel%==1 set NetWorking=Not connected to the Internet
:DxDiag
if exist "%Temp%\" (
	for /f "tokens=2 delims=:" %%i in ('Findstr /IC:"Operating System: " %Temp%\') do (
		for /f "delims=(" %%j in ("%%i") do set OS=%%j
	)
	) else (
	Goto :DxDiag
)
title Get hardware information - %OS%
for /f "tokens=2 delims=:" %%i in ('Findstr /IC:"Processor: " %Temp%\') do set CPU=%%i
for /l %%i in (256 -1 0) do if "!CPU:~%%i,1!"=="" set =%%i
if %% gtr 67 set CPU= %CPU:~0,60% ...
 .......%CPU%
echo.
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic BaseBoard get Manufacturer^,Product^,SerialNumber^,Version /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set Manufacturer=%%i
	if !Row! == 2 set Product=%%i
	if !Row! == 3 set SerialNumber=%%i
	if !Row! == 4 set Version=%%i
)
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic bios get InstallableLanguages^,ReleaseDate^,SMBIOSBIOSVersion /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set InstallableLanguages=%%i
	if !Row! == 2 set ReleaseDate=%%i
	if !Row! == 3 set SMBIOSBIOSVersion=%%i
)
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic Memphysical Get MaxCapacity^,MemoryDevices /Value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set MaxCapacity=%%i
	if !Row! == 2 set MemoryDevices=%%i
)
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic Csproduct get Uuid /Value 2^>nul') do set Uuid=%%i
if "%Version%"==" " set Version=none
if "%SerialNumber%"==" " set SerialNumber=none
set /a MaxCapacity=!MaxCapacity!/1048576
set MaxCapacity=!MaxCapacity! GB
set MemoryDevices=!MemoryDevices! indivual
set InstallableLanguages=!InstallableLanguages! Chinese Language
set ReleaseDate=%ReleaseDate:~0,4% Year %ReleaseDate:~4,2% moon %ReleaseDate:~6,2% day
if "%Uuid%" == "00000000-0000-0000-0000-000000000000" set Uuid=Motherboard repaired
if /i "%Manufacturer:~0,3%" == "MSI"    set Manufacturer=Microstar
if /i "%Manufacturer:~0,4%" == "ASUS"    set Manufacturer=Asus
if /i "%Manufacturer:~0,4%" == "TIMI"    set Manufacturer=Millet
if /i "%Manufacturer:~0,4%" == "SOYO"    set Manufacturer=Meijie
if /i "%Manufacturer:~0,4%" == "ONDA"    set Manufacturer=Onda
if /i "%Manufacturer:~0,5%" == "SUPOX"   set Manufacturer=Pan Zheng
if /i "%Manufacturer:~0,5%" == "PCASL"   set Manufacturer=Xiangsheng
if /i "%Manufacturer:~0,5%" == "INTEL"   set Manufacturer=Intel
if /i "%Manufacturer:~0,6%" == "MAXSUN"   set Manufacturer=Mingxuan
if /i "%Manufacturer:~0,6%" == "LENOVO"   set Manufacturer=Lenovo
if /i "%Manufacturer:~0,6%" == "ASROCK"   set Manufacturer=A-Link
if /i "%Manufacturer:~0,6%" == "GALAXY"   set Manufacturer=Shadow Chi
if /i "%Manufacturer:~0,7%" == "TOSHIBA"  set Manufacturer=Toshiba
if /i "%Manufacturer:~0,7%" == "BIOSTAR"  set Manufacturer=Yingtai
if /i "%Manufacturer:~0,8%" == "GIGABYTE"  set Manufacturer=Jijia
if /i "%Manufacturer:~0,8%" == "COLORFUL"  set Manufacturer=Colorful rainbow
if /i "%Manufacturer:~0,8%" == "SAPPHIRE"  set Manufacturer=sapphire
if /i "%Manufacturer:~0,8%" == "MECHREVO"  set Manufacturer=Mechanical fate
if /i "%Manufacturer:~0,10%" == "SUPERMICRO" set Manufacturer=Super micro
echo.Motherboard ....... %Manufacturer%  %Product%
echo.
for /f "tokens=2 delims==" %%i in ('Wmic Path Win32_PhysicalMemory Get BankLabel /value 2^>nul') do set /a MemoryQuantity+=1
set MemorySize=0
for /f "tokens=3 delims=:" %%i in ('Find /c /v "" %0') do set /a =%%i
for /f "tokens=2 delims==" %%i in ('Wmic Path Win32_PhysicalMemory Get Capacity /value 2^>nul') do (
	set Capacity=%%i
	call :Addition !Capacity! !MemorySize! MemorySize
)
call :GetSize !MemorySize! MemorySize
if not !!==1069 Goto :Eof
if "!MemorySize:~-5,3!"==".00" set MemorySize=!MemorySize:~0,-5! !MemorySize:~-2!
if "!MemorySize!"=="EB" Goto :Eof
echo.Memory ....... %MemoryQuantity% strip  %MemorySize%
echo.
for /f "tokens=2 delims==" %%i in ('Wmic DiskDrive Get Model /Value^|Find /i /v "USB"') do (
	set /a HdQuantity+=1
	if !HdQuantity! == 1 set FirstDisk=%%i
)
echo.harddisk ....... %HdQuantity% piece  %FirstDisk% (host)
echo.
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic Path Win32_VideoController Get Name^,AdapterRam^,DriverDate^,DriverVersion^,VideoProcessor^,MaxRefreshRate^,MinRefreshRate^,VideoProcessor^,CurrentBitsPerPixel^,CurrentRefreshRate^,CurrentHorizontalResolution^,CurrentVerticalResolution /Value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set AdapterRAM=%%i
	if !Row! == 2 set CurrentBitsPerPixel=%%i
	if !Row! == 3 set CurrentHorizontalResolution=%%i
	if !Row! == 4 set CurrentRefreshRate=%%i
	if !Row! == 5 set CurrentVerticalResolution=%%i
	if !Row! == 6 set DriverDate=%%i
	if !Row! == 7 set DriverVersion=%%i
	if !Row! == 8 set MaxRefreshRate=%%i
	if !Row! == 9 set MinRefreshRate=%%i
	if !Row! == 10 set VideoName=%%i
	if !Row! == 11 set VideoProcessor=%%i
)
if "%CurrentBitsPerPixel%" == "" (
	set Row=0
	for /f "skip=15 tokens=2 delims==" %%i in ('Wmic Path Win32_VideoController Get Name^,AdapterRam^,DriverDate^,DriverVersion^,VideoProcessor^,MaxRefreshRate^,MinRefreshRate^,VideoProcessor^,CurrentBitsPerPixel^,CurrentRefreshRate^,CurrentHorizontalResolution^,CurrentVerticalResolution /Value 2^>nul') do (
		set /a Row+=1
		if !Row! == 1 set AdapterRAM=%%i
		if !Row! == 2 set CurrentBitsPerPixel=%%i
		if !Row! == 3 set CurrentHorizontalResolution=%%i
		if !Row! == 4 set CurrentRefreshRate=%%i
		if !Row! == 5 set CurrentVerticalResolution=%%i
		if !Row! == 6 set DriverDate=%%i
		if !Row! == 7 set DriverVersion=%%i
		if !Row! == 8 set MaxRefreshRate=%%i
		if !Row! == 9 set MinRefreshRate=%%i
		if !Row! == 10 set VideoName=%%i
		if !Row! == 11 set VideoProcessor=%%i
	)
)
if "!AdapterRAM:~0,1!" == "-" set AdapterRAM=%AdapterRAM:~1%
call :GetSize !AdapterRAM! AdapterRAM
if "!AdapterRam:~-5,3!"==".00" set AdapterRam=!AdapterRam:~0,-5! !AdapterRam:~-2!
set DriverDate=%DriverDate:~0,4% Year %DriverDate:~4,2% moon %DriverDate:~6,2% day
set "Resolution=%CurrentHorizontalResolution% x %CurrentVerticalResolution% (%CurrentBitsPerPixel% bit) (%CurrentRefreshRate% Hz)"
echo.Graphics Card ....... %VideoName% %AdapterRAM%
echo.
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic DesktopMonitor Get PNPDeviceID^,PixelsPerXLogicalInch /Value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set PixelsPerXLogicalInch=%%i
	if !Row! == 2 set PNPDeviceID=%%i
)
for /f "delims=\ tokens=2" %%i in ("!PNPDeviceID!") do set DisplayName=%%i

if "%DisplayName%"=="" (echo.Screen ....... !Resolution!) else (echo.Screen ....... !DisplayName! !Resolution!)
echo.
set Row=0
for /f "tokens=2 delims==" %%i in ('Wmic Path Win32_CDRomDrive Get Name^,MediaLoaded /Value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set MediaLoaded=%%i
	if !Row! == 2 set =%%i
)
if "%%"=="" (set =none) else (if /i "%MediaLoaded%"=="TRUE" set "MediaLoaded=(Have a plate)"
if /i "%MediaLoaded%"=="FALSE" set "MediaLoaded=(null)")
echo.Optical drive ....... %% %MediaLoaded%
echo.
set Row=0
for /f "tokens=2 delims=:" %%i in ('Findstr /IC:"Description: " %Temp%\') do (
	set /a Row+=1
	if !Row! == 1 set Description=%%i
)
echo Sound card .......%Description% (Output)
echo.
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic Path Win32_NetworkAdapterConfiguration WHERE "IPEnabled='TRUE'" get IPAddress^,IPSubnet^,MACAddress^,DefaultIPGateway^,Caption /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set NetName=%%i
	if !Row! == 2 set DefaultIPGateway=%%i
	if !Row! == 3 set IP=%%i
	if !Row! == 4 set IPSubnet=%%i
	if !Row! == 5 set MACAddress=%%i
)
if "%DefaultIPGateway%" == "" (
	set Row=0
	for /f "skip=2 tokens=2 delims==" %%i in ('Wmic Path Win32_NetworkAdapterConfiguration WHERE "DHCPEnabled='TRUE'" get IPAddress^,IPSubnet^,MACAddress^,DefaultIPGateway^,Caption /value 2^>nul') do (
		set /a Row+=1
		if !Row! == 1 set NetName=%%i
		if !Row! == 2 set DefaultIPGateway=%%i
		if !Row! == 3 set IP=%%i
		if !Row! == 4 set IPSubnet=%%i
		if !Row! == 5 set MACAddress=%%i
	)
)
if "%DefaultIPGateway%" == "" (
	set Row=0
	for /f "skip=9 tokens=2 delims==" %%i in ('Wmic Path Win32_NetworkAdapterConfiguration WHERE "DHCPEnabled='TRUE'" get IPAddress^,IPSubnet^,MACAddress^,DefaultIPGateway^,Caption /value 2^>nul') do (
		set /a Row+=1
		if !Row! == 1 set NetName=%%i
		if !Row! == 2 set DefaultIPGateway=%%i
		if !Row! == 3 set IP=%%i
		if !Row! == 4 set IPSubnet=%%i
		if !Row! == 5 set MACAddress=%%i
	)
)
if "%DefaultIPGateway%" == "" (
	set Row=0
	for /f "skip=16 tokens=2 delims==" %%i in ('Wmic Path Win32_NetworkAdapterConfiguration WHERE "DHCPEnabled='TRUE'" get IPAddress^,IPSubnet^,MACAddress^,DefaultIPGateway^,Caption /value 2^>nul') do (
		set /a Row+=1
		if !Row! == 1 set NetName=%%i
		if !Row! == 2 set DefaultIPGateway=%%i
		if !Row! == 3 set IP=%%i
		if !Row! == 4 set IPSubnet=%%i
		if !Row! == 5 set MACAddress=%%i
	)
)
if "%DefaultIPGateway%" == "" (
	set IP=Not connected to the Internet
	set IPSubnet=Not connected to the Internet
	set DefaultIPGateway=Not connected to the Internet
)
if "%MACAddress%" == "" set MACAddress=The network card has been disabled
for /f "tokens=2 delims=]" %%i in ("!NetName!") do set NetName=%%i
if "!NetName:~0,1!" == " " set NetName=!NetName:~1!
for /f "delims=," %%i in ("!IP!") do set IP=%%i
for /f "delims=," %%i in ("!IPSubnet!") do set IPSubnet=%%i
set IP=!IP:"=!
set IP=!IP:{=!
set IP=!IP:}=!
set IPSubnet=!IPSubnet:"=!
set IPSubnet=!IPSubnet:{=!
set IPSubnet=!IPSubnet:}=!
set DefaultIPGateway=!DefaultIPGateway:{"=!
set DefaultIPGateway=!DefaultIPGateway:"}=!
echo Network card ....... %NetName% (%NetWorking%)
echo.
echo.
set /p 540044977=To generate detailed computer configuration information files, please enter the car directly:
Title Get hardware information - Detailed information is being generated,Please wait...
if "!Titl!" Neq "The detection environment is in a virtual machine, and the following information may be inaccurate:" Color 08
set Tim.1=%Time%
set File=%ComputerName%.Txt
Reg add "HKCU\Software\Microsoft\Notepad" /v "lfFaceName" /d "fixedsys" /f >nul 2>nul
echo %Titl%>!File!
echo ...................................................................... >>!File!
echo.>>!File!
echo.The computer review information is as follows:>>!File!
for /f "tokens=3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "DigitalProductId" 2^>nul') do set DigitalProductId=%%i
if "!DigitalProductId!"=="" (
	set Key=Not obtained
	goto :Skip)
set Row=-1
for /l %%i in (0,2,327) do (
	set /a Row+=1
	set F=!DigitalProductId:~%%i,2!
	set /a Id!Row!=0X!F:~0,1!*16+0X!F:~1,1!
)
set /a Win10=!Id66!/6^&1
set /a Id66=(!Id66!^&0XF7)^|((!Win10!^&2)*4)
set Maps=BCDFGHJKMPQRTVWXY2346789
for /l %%i in (24 -1 0) do (
	set Current=0
	for /l %%j in (14 -1 0) do (
		set /a Current*=256
		set /a J=%%j+52	
		set /a Current=Id!J!+!Current!
		set /a Id!J!=!Current!/24
		set /a Current=!Current!%%24
	)
	for /l %%k in (0,1,24) do (
		if !Current!==%%k (
		set KeyTemp=!Maps:~%%k,1!!KeyTemp!
	)
)
set Last=!Current!
)
if !Win10!==1 (
	for /l %%i in (0,1,24) do set keypart1=!KeyTemp:~1,%%i!
	set Insert=N
	for /l %%i in (1,1,24) do (	
		Set L=!L!!KeyTemp:~%%i,1!
		if %%i==!Last! Set L=!L!!Insert!
	)
	Set KeyTemp=!L!
	if !Last!==0 Set KeyTemp=!Insert!!KeyTemp!
)
Set Key=!KeyTemp:~0,5!-!KeyTemp:~5,5!-!KeyTemp:~10,5!-!KeyTemp:~15,5!-!KeyTemp:~20,5!
:Skip
for /f "tokens=2 delims=:" %%i in ('Findstr /IC:"System Manufacturer:" %Temp%\') do set PCbrand=%%i
if /i "%PCbrand:~1,2%" == "HP"    set PCbrand=HP
if /i "%PCbrand:~1,3%" == "MSI"   set PCbrand=Microstar
if /i "%PCbrand:~1,4%" == "ACER"   set PCbrand=Acer
if /i "%PCbrand:~1,4%" == "TIMI"   set PCbrand=Millet
if /i "%PCbrand:~1,4%" == "DELL"   set PCbrand=Dell
if /i "%PCbrand:~1,4%" == "ASUS"   set PCbrand=Asus
if /i "%PCbrand:~1,5%" == "HASEE"  set PCbrand=China
if /i "%PCbrand:~1,5%" == "HAIER"  set PCbrand=Haier
if /i "%PCbrand:~1,6%" == "LENOVO"  set PCbrand=Lenovo
if /i "%PCbrand:~1,7%" == "SAMSUNG" set PCbrand=Samsung
if /i "%PCbrand:~1,7%" == "TOSHIBA" set PCbrand=Toshiba
if /i "%PCbrand:~1,8%" == "GIGABYTE" set PCbrand=Jijia
if /i "%PCbrand:~1,8%" == "MECHREVO" set PCbrand=Mechanical fate
for /f "tokens=2 delims=:" %%j in ('Findstr /IC:"System Model:" %Temp%\') do (
	set PCModel=%%j
	set PCModel=!PCModel:~1!
)
for /f "tokens=2 delims=={}" %%i in ('Wmic PATH Win32_SystemEnclosure get ChassisTypes /value 2^>nul') do (
	for %%j in (3,4,6,7,15) do if %%j == %%i set PCtype=Desktop
	for %%j in (8,9,10,14) do if %%j == %%i set PCtype=notebook
	if %%i == 13 set PCtype=All-in-one machine
)
if "!PCtype!" == "" set PCtype=unknown
if "!PCtype!" == "Desktop" set PCbrand=%Manufacturer%
if "!PCtype!" == "Desktop" set PCModel=%Product%
if "!Titl!" == "The detection environment is in a virtual machine, and the following information may be inaccurate:" set PCbrand=Virtual Machine&set PCModel=Virtual Machine
echo.>>!File!
echo.  name ................... : %ComputerName%>>!File!
echo.>>!File!
echo.  brand ................... : %PCbrand%>>!File!
echo.>>!File!
echo.  model ................... : %PCModel%>>!File!
echo.>>!File!
echo.  type ................... : %PCtype%>>!File!
echo.>>!File!
for /f "tokens=2 delims==" %%i in ('Wmic OS Get InstallDate /Value 2^>nul') do set InstallDate=%%i
set InstallDate=!InstallDate:~0,4! Year !InstallDate:~4,2! moon !InstallDate:~6,2! day !InstallDate:~8,2! hour !InstallDate:~10,2! point !InstallDate:~12,2! Second
echo.  Current user ............... : !UserName!>>!File!
echo.>>!File!
echo.  System version ............... :!OS!>>!File!
echo.>>!File!
for /f "tokens=2 delims==" %%i in ('wmic os get Version /value') do set OSVersion=%%i
echo.  System version号 ............. : !OSVersion!>>!File!
echo.>>!File!
for /f "tokens=2 delims==" %%i in ('wmic os get SerialNumber /value') do set SerialNumber=%%i
echo.  System serial number ............. : !SerialNumber!>>!File!
echo.>>!File!
echo.  System key ............... : !Key!>>!File!
echo.>>!File!
for /f "tokens=2 delims=:" %%i in ('Findstr /IC:"DirectX Version: " %Temp%\') do set DirectX=%%i
echo.  DirectX Version ........... :%DirectX%>>!File!
echo.>>!File!
for /f "tokens=2 delims==" %%i in ('Wmic OS Get LastBootUpTime /Value 2^>nul') do (
	set L=%%i
	set LastBootUpTime=!L:~0,4! Year !L:~4,2! moon !L:~6,2! day !L:~8,2! hour !L:~10,2! point !L:~12,2! Second
)
echo.  开机hour间 ............... : %LastBootUpTime%>>!File!
echo.>>!File!
echo.  系统初始安装day期 ....... : %InstallDate%>>!File!
echo.>>!File!
echo.>>!File!
echo.about CPU The detailed information is as follows:>>!File!
echo.>>!File!
echo.  name ........... :%CPU%>>!File!
echo.>>!File!
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic CPU get Name^,AddressWidth^,CurrentVoltage^,ExtClock^,Family^,MaxClockSpeed^,ProcessorId^,Revision^,SocketDesignation^,Stepping /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set AddressWidth=%%i
	if !Row! == 2 set CurrentVoltage=%%i
	if !Row! == 3 set ExtClock=%%i
	if !Row! == 4 set Family=%%i
	if !Row! == 5 set MaxClockSpeed=%%i
	if !Row! == 6 set CpuName=%%i
	if !Row! == 7 set ProcessorId=%%i
	if !Row! == 8 set Revision=%%i
	if !Row! == 9 set SocketDesignation=%%i
	if !Row! == 10 set Stepping=%%i
)
set CurrentVoltage=%CurrentVoltage:~0,1%.%CurrentVoltage:~1%
set NumberOfProcessors=-1
for /f "tokens=2 delims==" %%i in ('Wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentIdleTime /value 2^>nul') do (
	set /a NumberOfProcessors+=1
	set CpuOccupy=%%i
)
if "%NumberOfProcessors%"=="-1" for /f "delims== tokens=2" %%i in ('Wmic cpu Get NumberOfLogicalProcessors /Value 2^>nul') do set NumberOfProcessors=%%i
if "%NumberOfProcessors%"=="-1" set NumberOfProcessors=Not obtained
set Row=0
for /f "Skip=1" %%i in ('Wmic Path Win32_CacheMemory Get MaxCacheSize 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set One=%%i
	if !Row! == 2 set Two=%%i
	if !Row! == 3 set Three=%%i
)
set /a CpuOccupy=100-%CpuOccupy%
if "%CpuOccupy%" == ""    set CpuOccupy=.
if "%CpuOccupy%" == " "   set CpuOccupy=.
if "%One%" == ""      set One=0
if "%Two%" == ""      set Two=0
if "%Three%"==""      set Three=0
if "%One%" == " "      set One=0
if "%Two%" == " "      set Two=0
if "%Three%"==" "      set Three=0
if "%Family%" == ""     set Family=.
if "%Family%" == " "     set Family=.
if "%Revision%" == ""    set Revision=.
if "%Revision%" == " "    set Revision=.
if "%Stepping%" == ""    set Stepping=.
if "%Stepping%" == " "    set Stepping=.
if "%AddressWidth%" == ""  set AddressWidth=.
if "%AddressWidth%" == " "  set AddressWidth=.
if "%CurrentVoltage%" == "" set CurrentVoltage=.
if "%CurrentVoltage%" == " " set CurrentVoltage=.
call :Space !CpuOccupy!   12 Blank.1
call :Space !CurrentVoltage! 11 Blank.2
call :Space !Stepping!    8 Blank.3
call :Space !AddressWidth!  12 Blank.4
call :Space !Family!     8 Blank.5
echo.  core ........... : %NumberOfProcessors% core>>!File!
echo.>>!File!
echo.  host频 ........... : %MaxClockSpeed% Mhz>>!File!
echo.>>!File!
echo.  External frequency ........... : %ExtClock% Mhz>>!File!
echo.>>!File!
if "!NumberOfProcessors!" neq "Not obtained" (
set /a Score=!NumberOfProcessors!*!MaxClockSpeed!
echo.  性能评point ....... : !Score! point>>!File!
echo.>>!File!
)
echo.  Level 1 cache ....... : %One% Kb>>!File!
echo.>>!File!
echo.  Level 2 cache ....... : %Two% Kb>>!File!
echo.>>!File!
echo.  Level 3 cache ....... : %Three% Kb>>!File!
echo.>>!File!
echo.  Slot ........... : %SocketDesignation%>>!File!
echo.>>!File!
echo.  serial number ........... : %ProcessorId%>>!File!
echo.>>!File!
echo.>>!File!
echo.  Used(%)  Voltage(V)  Stepping  Position width(Bit)  family  Revised version number>>!File!
echo.>>!File!
echo.  %CpuOccupy%%Blank.1%%CurrentVoltage%%Blank.2%%Stepping%%Blank.3%%AddressWidth%%Blank.4%%Family%%Blank.5%%Revision%>>!File!
echo.>>!File!
echo.>>!File!
echo.aboutMotherboardThe detailed information is as follows:>>!File!
echo.>>!File!
echo.  brand ........... : %Manufacturer%>>!File!
echo.>>!File!
echo.  model ........... : %Product%>>!File!
echo.>>!File!
echo.  Version ........... : %Version%>>!File!
echo.>>!File!
echo.  Serial number ......... : %SerialNumber%>>!File!
echo.>>!File!
echo.  MemorySlot ....... : %MemoryDevices%>>!File!
echo.>>!File!
echo.  Memory支持 ....... : %MaxCapacity%>>!File!
echo.>>!File!
echo.  出厂day期 ....... : %ReleaseDate%>>!File!
echo.>>!File!
echo.  CPU Slot ....... : %SocketDesignation%>>!File!
echo.>>!File!
echo.  BIOS Version ...... : %SmbiosbioSversion%>>!File!
echo.>>!File!
echo.  BIOS language ...... : %InstallableLanguages%>>!File!
echo.>>!File!
echo.  Unique ID ....... : %Uuid%>>!File!
echo.>>!File!
echo.>>!File!
echo.aboutMemoryThe detailed information is as follows:>>!File!
echo.>>!File!
echo.  quantity ........... : %MemoryQuantity% strip>>!File!
echo.>>!File!
echo.  Total capacity ......... : %MemorySize%>>!File!
echo.>>!File!
echo.>>!File!
echo.  Memory   capacity     frequency   Slot>>!File!
echo.>>!File!
set Row=0
for /f "skip=1 delims=" %%i in ('Wmic Path Win32_PhysicalMemory Get DeviceLocator^,Capacity^,Speed') do (
	set /a Row+=1 
	set i=%%i
	for /f "tokens=1,2,3" %%j in ("!i!") do (
		set MemorySize=%%j
		set DeviceLocator=%%k
		set Speed=%%l
	)
	if "!Speed!"=="" set Speed=NotGet
	call :GetSize !MemorySize! MS
	call ::Space !MS! 13  Blank.1
	call ::Space !Speed! 10 Blank.2
if not "!i:~1,1!"== "" echo.  !Row!    !MS!!Blank.1!!Speed!!Blank.2!!DeviceLocator!>>!File!
)
echo.>>!File!
echo.>>!File!
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic path Win32_PerfFormattedData_PerfOS_Memory get AvailableBytes^,CommittedBytes^,CommitLimit /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set AvailableBytes=%%i
	if !Row! == 2 set CommitLimit=%%i
	if !Row! == 3 set CommittedBytes=%%i
)
if "!CommitLimit!"  neq "" call :GetSize !CommitLimit! CommitLimit
if "!AvailableBytes!" neq "" call :GetSize !AvailableBytes! Available
if "!CommittedBytes!" neq "" call :GetSize !CommittedBytes! Committed
if "!Available!" neq "" (
	echo.  UsedMemory : %Committed%  可用Memory : %Available%  Submission restrictions : %CommitLimit%>>!File!
	echo.>>!File!
	echo.>>!File!
)
echo.aboutharddiskThe detailed information is as follows:>>!File!
echo.>>!File!
echo.  quantity ........... : %HdQuantity% piece>>!File!
echo.>>!File!
set HdSize=0
for /f "skip=1 delims=" %%i in ('Wmic DiskDrive Get Size') do (
	set =%%i
	call :Addition !! !HdSize! HdSize
)
call :GetSize !HdSize! HdSize
if "!HdSize:~-5,3!"==".00" set HdSize=!HdSize:~0,-5! !HdSize:~-2!
echo.  实际capacity .............. : !HdSize!>>!File!
echo.>>!File!
if "!Tit!"=="The detection environment is in a virtual machine, and the following information may be inaccurate:" Goto :Go
for /f "tokens=2 delims==" %%i in ('Wmic /NameSpace:\\root\wmi Path MSStorageDriver_ATAPISmartData get VendorSpecific /Value 2^>Nul') do (
	set /a DiskNuber+=1
	set Smart=%%i
	set Smart=!Smart:,= !
	if not !!==1069 Goto :Eof
	for /l %%j in (3 12 362) do (
		set Nu.1=0
		for %%k in (!Smart!) do (
			set /a Nu.1+=1
			if !Nu.1! == %%j (
				if %%k == 9 (set /a Nu.2=!Nu.1!+7
					   call :Calc !Nu.1! !Nu.2! PowerOnTimeCount)
				if %%k == 12 (set /a Nu.2=!Nu.1!+7
					    call :Calc !Nu.1! !Nu.2! StartStopCount)
				set /a Nu.3=0,Nu.4=0
				if %%k == 190 (set /a Nu.3=!Nu.1!+5
					for %%l in (!Smart!) do (
						set /a Nu.4+=1
						if !Nu.4! == !Nu.3! set Temperature=%%l
						)	
				) else (
					if %%k == 194 (set /a Nu.3=!Nu.1!+5
						for %%l in (!Smart!) do (
							set /a Nu.4+=1
							if !Nu.4! == !Nu.3! set Temperature=%%l
						)
					)
				)
			)
		)
	)		
set /a Day=!PowerOnTimeCount!/24
echo.>>!File!
echo   harddisk !DiskNuber!: >>!File!
echo.>>!File!
echo   当前harddisk温度 ..................... : !Temperature! ℃>>!File!
echo.>>!File!
echo   截至目前harddisk已启停 ..................... : !StartStopCount! Second-rate>>!File!
echo.>>!File!
echo   截至目前harddisk已累计运行 ....................... : !PowerOnTimeCount! 小hour(!Day!sky)>>!File!
)
echo.>>!File!
:Go
echo.>>!File!
echo.  harddisk  point区   model    capacity    state    model>>!File!
echo.>>!File!
set Row=0
for /f "skip=1 delims=" %%i in ('Wmic DiskDrive Get Partitions^,InterFacetype^,Size^|Find /i /v "USB"') do (
	set /a Row+=1
	set i=%%i
	for /f "tokens=1,2,3" %%j in ("!i!") do (
		set InterfaceType=%%j
		set Partitions=%%k
		set DiskSize=%%l
	)
	set Rox=0
	for /f "skip=1 delims=" %%m in ('Wmic DiskDrive Get Caption^|Find /i /v "USB"') do (
		set /a Rox+=1
		if !Rox! == !Row! set DiskCaption=%%m
	)
	if !Row! == 1 (set Disklevel=host盘) else (set Disklevel=From the disk)
	call :GetSize !DiskSize! NominalSize
	if "!NominalSize:~0,3!" == "74." set NominalSize=80GB
	if "!NominalSize:~0,3!" == "111" set NominalSize=120GB
	if "!NominalSize:~0,3!" == "119" set NominalSize=128GB
	if "!NominalSize:~0,3!" == "149" set NominalSize=160GB
	if "!NominalSize:~0,3!" == "223" set NominalSize=240GB
	if "!NominalSize:~0,3!" == "232" set NominalSize=250GB
	if "!NominalSize:~0,3!" == "238" set NominalSize=256GB
	if "!NominalSize:~0,3!" == "298" set NominalSize=320GB
	if "!NominalSize:~0,3!" == "335" set NominalSize=360GB
	if "!NominalSize:~0,3!" == "447" set NominalSize=480GB
	if "!NominalSize:~0,3!" == "465" set NominalSize=500GB
	if "!NominalSize:~0,3!" == "476" set NominalSize=512GB
	if "!NominalSize:~0,3!" == "698" set NominalSize=750GB
	if "!NominalSize:~0,3!" == "931" set NominalSize=1TB
	if "!NominalSize:~0,3!" == "1.8" set NominalSize=2TB
	if "!NominalSize:~0,3!" == "2.7" set NominalSize=3TB
	if "!NominalSize:~0,3!" == "3.6" set NominalSize=4TB
	if "!NominalSize:~0,3!" == "4.5" set NominalSize=5TB
	if "!NominalSize:~0,3!" == "5.4" set NominalSize=6TB
	if "!NominalSize:~0,3!" == "7.2" set NominalSize=8TB
	if "!NominalSize:~0,3!" == "9.0" set NominalSize=10TB
	call :Space !Row!      8 Blank.1
	call :Space !Partitions!  9 Blank.2
	call :Space !InterfaceType! 12 Blank.3
	call :Space !NominalSize!  12 Blank.4
if not "!i:~1,1!"=="" echo. !Row!!Blank.1!!Partitions!!Blank.2!!InterfaceType!!Blank.3!!NominalSize!!Blank.4!!Disklevel!!DiskCaption!>>!File!
 )
 echo.>>!File!
 echo.>>!File!
 echo. Drive Letter Format Capacity Used Remaining Tag >>!File!
 echo.>>!File!
 for /f "skip=1 delims=" %%i in ('Wmic LogicalDisk Where Mediatype^='12' Get DeviceID^,FileSystem^,Size^,FreeSpace^,VolumeName') do (
	set i=%%i
	for /f "tokens=1,2,3,4,*" %%j in ("!i!") do (
		set DeviceID=%%j
		set FileSystem=%%k
		set FreeSpace=%%l
		set PartitionSize=%%m
		set VolumeName=%%n
		if "!VolumeName!"=="" set VolumeName=default value
	)
	if "!FileSystem!"=="" (
		set FileSystem=RAW
		set Total=0.00GB
		set Used=0.00GB
		set Free=0.00GB
	) Else (
		call :Minus !PartitionSize! !FreeSpace! PartitionUsed
		call :GetSize !FreeSpace! Free
		call :GetSize !PartitionSize! Total
		call :GetSize !PartitionUsed! Used
		if "!Free:~-5,3!"==".00" set Free=!Free:~0,-5!!Free:~-2!
		if "!Total:~-5,3!"==".00" set Total=!Total:~0,-5!!Total:~-2!
		if "!Used:~-5,3!"==".00" set Used=!Used:~0,-5!!Used:~-2!
		)
	call :Space !FileSystem! 9 Blank.1
	call :Space !Total!   12 Blank.2
	call :Space !Used!    12 Blank.3
	call :Space !Free!    12 Blank.4
if not "!i:~3,1!"=="" echo. !DeviceID! !FileSystem!!Blank.1!!Total!!Blank.2!!Used!!Blank.3!!Free!!Blank.4!!VolumeName!>>!File!
 )
 echo.>>!File!
 echo.>>!File!
 echo.The detailed information about the graphics card is as follows: >>!File!
 echo.>>!File!
 echo. Name ............ : %VideoName%>>!File!
 echo.>>!File!
 echo. Video memory ......... : %AdapterRAM%>>!File!
 echo.>>!File!
 echo. Current mode ..... : %Resolution%>>!File!
 echo.>>!File!
 echo. Driver version ..... : %DriverVersion%>>!File!
 echo.>>!File!
 echo. Driver date...... : %DriverDate%>>!File!
 echo.>>!File!
 echo. Kernel name ..... : %VideoProcessor%>>!File!
 echo.>>!File!
 echo.>>!File!
 echo.The detailed information about the monitor is as follows: >>!File!
 echo.>>!File!
 if "%DisplayName%" == "" set DisplayName=Not obtained
echo.  model ........... : %DisplayName%>>!File!
echo.>>!File!
echo.  Pixel density ....... : %PixelsPerXLogicalInch% Dpi>>!File!
echo.>>!File!
echo.  当前model ....... : %Resolution%>>!File!
if "%%" neq "none" (
echo.>>!File!
echo.>>!File!
echo.aboutOptical driveThe detailed information is as follows:>>!File!
echo.>>!File!
echo. 列出所有Optical drive: >>!File!
echo.>>!File!
echo.  Drive letter  type    model >>!File!
echo.>>!File!
for /f "skip=1 delims=" %%i in ('Wmic CdRom Get Name^,Drive^,Mediatype') do echo.  %%i>>!File!
)
echo.>>!File!
echo.>>!File!
echo.aboutSound cardThe detailed information is as follows:>>!File!
echo.>>!File!
echo. 列出所有Sound card: >>!File!
echo.>>!File!
set Row=0
for /f "delims== tokens=2" %%i in ('Wmic Sounddev Get ProductName /Value 2^>nul') do (
	set /a Row+=1
	echo.  !Row!. %%i>>!File!
)
echo.>>!File!
echo. 当前Sound card信息: >>!File!
echo.>>!File!
set Row=0
for /f "tokens=2 delims=:" %%i in ('Findstr /IC:"Driver Version: " %Temp%\') do (
	set /a Row+=1
	if !Row! == 2 set SoundDriverVersion=%%i
)
for /f "tokens=1,* delims=:" %%i in ('Findstr /IC:"Date and Size: " %Temp%\') do (
	if "%%j"==" " (
		set SoundDate=Not obtained
		set SoundSize=Not obtained
		Goto :NoDateandSize) else (
	for /f "tokens=1,2 delims=," %%k in ("%%j") do (
		set SoundDate=%%k
		set SoundSize=%%l
	)))
for /f %%i in ("!SoundSize!") do call :GetSize %%i SoundSize
for /f %%i in ("!SoundDate!") do set SoundDate=%%i

for /f "tokens=1,2,3 delims=/" %%i in ("!SoundDate!") do (
	if %%i lss %%k set SoundDate=%%k Year %%i moon %%j day
	if %%i gtr %%k set SoundDate=%%i Year %%j moon %%k day
)
:NoDateandSize
echo.  OutputSound card ....... :!Description!>>!File!
echo.>>!File!
echo.  驱动Version ....... :!SoundDriverVersion!>>!File!
echo.>>!File!
echo.  驱动day期 ....... : !SoundDate!>>!File!
echo.>>!File!
echo.  Driver size ....... : !SoundSize!>>!File!
echo.>>!File!
echo.>>!File!
echo.aboutNetwork cardThe detailed information is as follows:>>!File!
echo.>>!File!
echo.  Network cardname ....... : !NetName!>>!File!
echo.>>!File!
echo.  IntranetIP ......... : !IP!>>!File!
echo.>>!File!
echo.  Gateway ........... : %DefaultIPGateway%>>!File!
echo.>>!File!
echo.  Mask ........... : %IPSubnet%>>!File!
echo.>>!File!
echo.  MAC ............ : !MacAddress!>>!File!
echo.>>!File!
echo.  当前state ....... : !NetWorking!(External network)>>!File!
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic Printer where "Default='TRUE'" get DriverName^,caption /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set PrinterName=%%i
	if !Row! == 2 set PrinterNamf=%%i
)
if "%PrinterName%" neq "" (
echo.>>!File!
echo.>>!File!
echo.about打印机The detailed information is as follows:>>!File!
echo.>>!File!
echo.  name ........... : !PrinterName!>>!File!
echo.>>!File!
echo.  model ........... : !PrinterNamf!>>!File!
echo.>>!File!
echo.  illustrate ........... : Get only default printer information>>!File!
)
set Row=0
for /f "skip=2 tokens=2 delims==" %%i in ('Wmic logicaldisk where "drivetype=2" get DeviceID^,FileSystem^,FreeSpace^,Size^,VolumeName^,VolumeSerialNumber /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set =%%i
	if !Row! == 2 set =%%i
	if !Row! == 3 set =%%i
	if !Row! == 4 set =%%i
	if !Row! == 5 set =%%i
	if !Row! == 6 set =%%i
)
if "%%"=="" set =No
if "%%"=="" set =0
if "%%"=="" set =0
if "%%"=="" set =default value
if "%%"=="" set =No
if "%%" neq "" (
	call :Minus !! !! 
	call :GetSize !! 
	call :GetSize !! 
	call :GetSize !! 
	call :Space !! 10 Blank.1
	call :Space !! 10 Blank.2
	call :Space !! 10 Blank.3
	call :Space !! 10 Blank.4
	call :Space !! 12 Blank.5
	echo.>>!File!
	echo.>>!File!
	echo.about可移动磁盘The detailed information is as follows:>>!File!
	echo.>>!File!
	echo   Drive letter  Format   capacity   Used   Remaining   Serial number   Coil label>>!File!
	echo.>>!File!
	echo   %%   %%!Blank.1!!!!Blank.2!!!!Blank.3!!!!Blank.4!%%!Blank.5!%%>>!File!
)
set =
set Row=0
for /f "skip=10 tokens=2 delims==" %%i in ('Wmic logicaldisk where "drivetype=2" get DeviceID^,FileSystem^,FreeSpace^,Size^,VolumeName^,VolumeSerialNumber /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set =%%i
	if !Row! == 2 set =%%i
	if !Row! == 3 set =%%i
	if !Row! == 4 set =%%i
	if !Row! == 5 set =%%i
	if !Row! == 6 set =%%i
)
if "%%"=="" set =No
if "%%"=="" set =0
if "%%"=="" set =0
if "%%"=="" set =default value
if "%%"=="" set =No
if "%%" neq "" (
	call :Minus !! !! 
	call :GetSize !! 
	call :GetSize !! 
	call :GetSize !! 
	call :Space !! 10 Blank.1
	call :Space !! 10 Blank.2
	call :Space !! 10 Blank.3
	call :Space !! 10 Blank.4
	call :Space !! 12 Blank.5
	echo   %%   %%!Blank.1!!!!Blank.2!!!!Blank.3!!!!Blank.4!%%!Blank.5!%%>>!File!
)
set =
set Row=0
for /f "skip=18 tokens=2 delims==" %%i in ('Wmic logicaldisk where "drivetype=2" get DeviceID^,FileSystem^,FreeSpace^,Size^,VolumeName^,VolumeSerialNumber /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set =%%i
	if !Row! == 2 set =%%i
	if !Row! == 3 set =%%i
	if !Row! == 4 set =%%i
	if !Row! == 5 set =%%i
	if !Row! == 6 set =%%i
)
if "%%"=="" set =No
if "%%"=="" set =0
if "%%"=="" set =0
if "%%"=="" set =default value
if "%%"=="" set =No
if "%%" neq "" (
	call :Minus !! !! 
	call :GetSize !! 
	call :GetSize !! 
	call :GetSize !! 
	call :Space !! 10 Blank.1
	call :Space !! 10 Blank.2
	call :Space !! 10 Blank.3
	call :Space !! 10 Blank.4
	call :Space !! 12 Blank.5
	echo   %%   %%!Blank.1!!!!Blank.2!!!!Blank.3!!!!Blank.4!%%!Blank.5!%%>>!File!
)
set =
set Row=0
for /f "skip=26 tokens=2 delims==" %%i in ('Wmic logicaldisk where "drivetype=2" get DeviceID^,FileSystem^,FreeSpace^,Size^,VolumeName^,VolumeSerialNumber /value 2^>nul') do (
	set /a Row+=1
	if !Row! == 1 set =%%i
	if !Row! == 2 set =%%i
	if !Row! == 3 set =%%i
	if !Row! == 4 set =%%i
	if !Row! == 5 set =%%i
	if !Row! == 6 set =%%i
)
if "%%"=="" set =No
if "%%"=="" set =0
if "%%"=="" set =0
if "%%"=="" set =default value
if "%%"=="" set =No
if "%%" neq "" (
	call :Minus !! !! 
	call :GetSize !! 
	call :GetSize !! 
	call :GetSize !! 
	call :Space !! 10 Blank.1
	call :Space !! 10 Blank.2
	call :Space !! 10 Blank.3
	call :Space !! 10 Blank.4
	call :Space !! 12 Blank.5
	echo   %%   %%!Blank.1!!!!Blank.2!!!!Blank.3!!!!Blank.4!%%!Blank.5!%%>>!File!
)
echo.>>!File!
echo.>>!File!
echo.>>!File!
echo.>>!File!
echo.程序Version ..............................: V-2.2>>!File!
echo.>>!File!
set Tim.2=%time%
call :TimeDifference !Tim.1! !Tim.2! Difference
echo.生成详细信息耗hour ..................... : %Difference%>>!File!
for /f %%i in ("%date%") do set Dat=%%i
for /f "delims=." %%i in ("%Time%") do set Tim=%%i
echo.>>!File!
echo.This program was finally optimized ..................... : 2020 Year 03 moon 18 day>>!File!
echo.>>!File!
echo.The above information is generated from ........................: %Dat% %Tim%>>!File!
echo.>>!File!
del /a /f %Temp%\ >nul 2>nul
start !File!
:End
Exit
:Space
if "%~3" == "" Goto :eof
set S=%~1
set Len.2=%~2
set Space=
for /l %%i in (25 -1 1) do if "!S:~%%i,1!"=="" set Len.1=%%i
set /a Len.3=!Len.2!-!Len.1!
for /l %%i in (1 1 !Len.3!) do set Space=!Space! 
set %~3=!Space!
Goto :eof
:GetSize
set Bytes=%~1
if "%~2" == "" Goto :eof
call :Division !Bytes! 1152921504606846976 OK
if not "%OK:~0,2%"=="0." (
	set %~2=!OK!EB
	Goto :eof
	) else (call :Division !Bytes! 1125899906842624 OK)
if not "%OK:~0,2%"=="0." (
	set %~2=!OK!PB
	Goto :eof
	) else (call :Division !Bytes! 1099511627776 OK)
if not "%OK:~0,2%"=="0." (
	set %~2=!OK!TB
	Goto :eof
	) else (call :Division !Bytes! 1073741824 OK)
if not "%OK:~0,2%"=="0." (
	set %~2=!OK!GB
	Goto :eof
	) else (call :Division !Bytes! 1048576 OK)
if not "%OK:~0,2%"=="0." (
	set %~2=!OK!MB
	Goto :eof
	) else (call :Division !Bytes! 1024 OK)
if not "%OK:~0,2%"=="0." (
	set %~2=!OK!KB
	Goto :eof
	) else (
	set %~2=!Bytes!B
	Goto :eof)
:TimeDifference
set /a N=0
for /f "tokens=1-8 delims=.:" %%I in ("%~2:%~1") do (
	set /a N+=10%%I%%100*360000+10%%J%%100*6000+10%%K%%100*100+10%%L%%100
	set /a N-=10%%M%%100*360000+10%%N%%100*6000+10%%O%%100*100+10%%P%%100
)
set Sco=!N!
set /a S=N/360000,N=N%%360000,F=N/6000,N=N%%6000,M=N/100,N=N%%100
set T=%M% Second %N% 毫Second
set %~3=%T%
Goto :eof
:Calc
set Cal.1=%~1
set Cal.2=%~2
set Cal.3=0
set Cal.4=
for %%i in (!Smart!) do (set /a Cal.3+=1
	if !Cal.3! Geq !Cal.1! (if !Cal.3! Lss !Cal.2! set Cal.4=!Cal.4! %%i))
for /f "tokens=6,7" %%i in ("!Cal.4!") do set /a Cal.4=%%j*256+%%i
set %~3=!Cal.4!
Goto :eof
:Inspect
title Get hardware information - Detecting the running environment,Please wait...
if %~Z0 neq 40938 Exit
if /i "%systemDrive%" == "X:" Title This program does not support PE environment,Please exit with any key!& Pause>nul & exit
Net User Guest /Active:Yes>nul 2>nul
if /i %Errorlevel% neq 0 Title Current account permissions are insufficient,Please run as administrator!& Pause>nul & exit
set Tit=about电脑配置的简要信息如下:
set Titl=about电脑配置The detailed information is as follows:
Sc Config Winmgmt Start= Auto >nul 2>nul
for /f "tokens=2 delims==" %%i in ('Wmic DiskDrive Get Model /Value^|Find /i /v "USB"') do (
	echo %%i>%Temp%\
	for /f %%j in ('Findstr /i "Vmware Vbox Virtual Qemu" %Temp%\') do (
		if "%%j" neq "" (Color 03
				 set Tit=检测environment处于Virtual Machine中,The following information may be inaccurate:
				 set Titl=检测environment处于Virtual Machine中,The following information may be inaccurate:
		)
	)
	del /a /f %Temp%\ >nul 2>nul
)
Goto :eof
:Addition
if "%~3"=="" Goto :eof
set Add.1=%~1
set Add.2=%~2
set Add.3=
set Add..1=
set Add..2=0
set Add.=
for /l %%i in (25 -1 0) do (if "!Add.1:~%%i,1!"=="" set Add.=%%i
			  if "!Add.2:~%%i,1!"=="" set Add.=%%i)
if !Add.! lss !Add.! (set Add.1=%~2
				set Add.2=%~1)
for /l %%i in (0 1 9) do set Add.1=!Add.1:%%i=%%i !
for %%i in (!Add.1!) do set Add.=%%i !Add.!
if %~Z0 neq 40938 Goto :End
for %%i in (!Add.!) do (
	if "!Add.2!"=="" set Add.2=0
	set /a Add..1=%%i+!Add.2:~-1!+!Add..2!
	set Add.3=!Add..1:~-1!!Add.3!
	set Add..2=!Add..1:~0,-1!
	if "!Add..2!"=="" set Add..2=0
	set Add.2=!Add.2:~0,-1!
)
if !Add..2! neq 0 set Add.3=!Add..2!!Add.3!
for /f "tokens=* delims=0" %%i in ("!Add.3!") do set Add.3=%%i
if "!Add.3!"=="" set Add.3=0
set %~3=!Add.3!
Goto :eof
:Minus
if "%~3"=="" Goto :eof
set Min.0=0
set Min.1=%~1
set Min.2=%~2
set Min.3=
set Min.=
for /l %%i in (0 1 9) do set Min.1=!Min.1:%%i= %%i!
for %%i in (!Min.1!) do set Min.=%%i !Min.!
for %%i in (!Min.!) do (
	set =%%i
	if "!Min.2!"=="" set Min.2=0
	if !Min.0! == 10 set /a =!!-1
	if !Min.2:~-1! gtr !! (set Min.0=10) else set Min.0=0
	set /a Min.=!!+!Min.0!-!Min.2:~-1!
	set Min.3=!Min.!!Min.3!
	set Min.2=!Min.2:~0,-1!
	)
for /f "tokens=* delims=0" %%i in ("!Min.3!") do set Min.3=%%i
if "!Min.3!"=="" set Min.3=0
set %~3=!Min.3!
Goto :eof
:Division
if "%~3" == "" Goto :eof
setlocal
set Div.1=%~1
set Div.2=%~2
set Div.3=
set =2
set =00000000
for /l %%i in (1 1 7) do set =!!!!
set Halving=4096 2048 1024 512 256 128 64 32 16 8 4 2 1
for /l %%i in (1 1 2) do (set i=0& set Div.%%.2=0
	for %%j in (!Div.%%i:.^= !) do (
		set /a i+=1& set jj=jj%%j& set Div.%%.!i!=0
		for %%k in (!Halving!) do (if "!jj:~%%k!" neq "" set /a Div.%%.!i!+=%%k& set jj=!jj:~%%k!)
		set /a Div.%%.0+=Div.%%.!i!
	)
    set Div.%%i=!Div.%%i:.=!
)
if !Div..2! gtr !Div..2! (set /a Div..0+=Div..2-Div..2) else (set /a Div..0+=Div..2-Div..2)
for /l %%i in (1 1 2) do (set Div.%%i=!Div.%%i!!!
	for %%j in (!Div.%%.0!) do set Div.%%i=!Div.%%i:~,%%j!
)
for /f "tokens=* delims=0" %%i in ("!Div.2!") do set N=%%i& set Div.2=0%%i
set Div..0=1
for %%j in (!Halving!) do (if "!N:~%%j!" neq "" (set /a Div..0+=%%j& set N=!N:~%%j!))
set /a =Div..0+1
if !Div..0! lss !Div..0! set Div..0=!Div..0!& set Div.1=!:~-%Div..0%,-%Div..0%!!Div.1!
set /a Div..0+=
set =%~Z0
set /a =31415+9523
if !! neq !! goto :eof
set Div.1=0!Div.1!!:~,%%!
set Div=!Div.1:~,%Div..0%!
set i=0000000!Div.2!
set /a Len=Div..0+7
for /l %%i in (1 1 9) do (set T=0
	for /l %%j in (8 8 !Len!) do (set /a T=1!i:~-%%j,8!*%%i+T
    	set Num%%i=!T:~-8!!Num%%i!
		set /a T=!T:~,-8!-%%i
	)
	set Num%%i=!T!!Num%%i!
	set Num%%i=0000000!Num%%i:~-%%!
)
for /l %%l in (!Div..0! 1 !Div..0!) do (
	set Div=!!!Div!!Div.1:~%%l,1!
	set Div=!Div:~-%%!
	if "!Div!" geq "!Div.2!" (
		set M=1& set i=0000000!Div!
		for /l %%i in (2 1 9) do if !i! geq !Num%%i! set M=%%i
		set Div.3=!Div.3!!M!
		set Div=
		set T=0
		for %%i in (!M!) do (
			for /l %%j in (8 8 !Len!) do (
				set /a T=3!i:~-%%j,8!-1!Num%%i:~-%%j,8!-!T:~,1!%%2
				set Div=!T:~1!!Div!
       		 )
		)	
	) else set Div.3=!Div.3!0
)
if defined  if %% gtr 0 set Div.3=!Div.3:~,-%%!.!Div.3:~-%%!
for /f "tokens=* delims=0" %%i in ("!Div.3!") do set Div.3=%%i
if "!Div.3:~0,1!"=="." set Div.3=0!Div.3!
endlocal & set %~3=%Div.3%
Goto :eof
Rem QQ:540044977 2020-04-29

Note: This program is pure batch processing and pure green, and will not contain my personal information in the generated file. Don’t modify the code structure at will. It is very likely that your computer will be fine, and you will get it inaccurate when you go to other computers.