Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


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, Если не сложно, поскажите какие изменения можно внести дополнительно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:25, 25-12-2010 | #20