@echo off
setlocal 

rem Use Windows PowerShell (built-in on Win8+)
set "PS=powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass" 

rem --- CPU info
%PS% -Command ^
  "Get-CimInstance Win32_Processor |" ^
  "  Select-Object Name, MaxClockSpeed, NumberOfCores, NumberOfLogicalProcessors |" ^
  "  Format-Table -AutoSize |" ^
  "  Out-String -Width 4096" > cpu.txt 

rem --- RAM info
%PS% -Command ^
  "Get-CimInstance Win32_PhysicalMemory |" ^
  "  Select-Object Capacity, MemoryType, TypeDetail, Speed |" ^
  "  Format-Table -AutoSize |" ^
  "  Out-String -Width 4096" > ram.txt 

rem --- GPU / broader system info
dxdiag /64bit /whql:off /t gpu.txt

endlocal