El Sanchez, Класс! Отличный код. Но только мне пришлось его немного исправить под себя:
Код:

@Echo Off
CHCP 866 >nul
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC OS GET Caption^,CSDVersion /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "%%B, %%C" "%%B, %%C" "os.txt"
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC BIOS GET Manufacturer^,Name /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "%%B, %%C" "%%B, %%C" "bios.txt"
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC CPU GET Name^,MaxClockSpeed /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "%%C, %%B MHz" "%%C, %%B MHz" "cpu.txt"
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC COMPUTERSYSTEM GET TotalPhysicalMemory /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "%%B bytes" "%%B bytes" "ram.txt"
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC BASEBOARD GET Manufacturer^,Product /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "%%B, %%C" "%%B, %%C" "mb.txt"
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC path Win32_VideoController GET Name^,AdapterRAM /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "%%C, %%B bytes RAM" "%%C, %%B bytes RAM" "video.txt"
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC path Win32_VideoController GET VideoModeDescription^,CurrentRefreshRate /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call :_Func "%%A" "%%C, %%B Hz" "%%C, %B Hz" "screenres.txt"
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC DISKDRIVE Where InterfaceType^=^'IDE^' GET Model /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "%%B" "%%B" "hdd.txt"
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_CDROMDrive GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "%%B" "%%B" "odd.txt"
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_NetworkAdapter Where ^"AdapterTypeId^=0 And NetConnectionStatus^=2^" GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "%%B" "%%B" "net.txt"
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_SoundDevice GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "%%B" "%%B" "sound.txt"
GoTo :EOF
:_Func
CHCP 1251 >nul
If %~1 EQU 1 Echo.%~2 >%4
If %~1 GTR 1 Echo.%~3 >>%4
CHCP 866 >nul
Мне не нужны были обозначения устройств на русском. А только сами устройства. Я не заморачивался с кодировкой исходного батника, но результируемые текстовики подошли! Список того, что получилось не так как надо:
1) список сетевых адаптеров не полон( У меня на тестовой машине их стоит 4 штуки... а скрипт выдал мне только одну реальную + Hamachi
2) в список видеокарточек затесался Radmin... не в тему...
3) объём памяти оперативки и видеокарточки в байтах... не особо наглядно, но скорее всего тут уж ничего не поделаешь. Придётся именно эту информацию брать по рецепту камрада
kiripanda...
4) файл
screenres.txt выглядит несколько странно:
Код:

1280 x 1024 x 4294967296 цв., 60 Hz
, B Hz
Напрягаяет наличие последней строки, не несущей никакого смысла.
Я не в коем случае не придираюсь. Просто стремлюсь подогнать код под свою сугубо специфическую задачу. Надеюсь на понимание.
El Sanchez, Если не сложно, поскажите какие изменения можно внести дополнительно.