Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 62, средняя оценка - 4.65
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
#1

Считывание информации о компьютере - CMD/BAT

12.10.2012, 21:02. Просмотров 11087. Ответов 16
Метки нет (Все метки)

-Название процессора (название и Ghz)
-видяхи (название и скоко МБ)
-опиративы (тип и скоко GB)
-разрядность системы
-какая винда.

Добавлено через 2 часа 14 минут
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
-Название процессора (название
Название уже не надо , токо гигагерцы , и всё остальное
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 21:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Считывание информации о компьютере (CMD/BAT):

Запись в текстовый файл информации о студентах, поиск информации, сортировка - CMD/BAT
Здравствуйте помогите пожалуйста:( 3.1 Для записи в текстовый файл информации о студентах Вашей группы создать КФ WRITE_FD.BAT со...

Получение информации о компьютере - C#
Нужно написать приложение для получения полной информации о процессоре, модулях памяти и материнской плате.... помогите плиз))) будет...

Получение информации о компьютере - Python
У меня такой вопрос: как можно получить информацию о компьютере(температура процессора и т.д.)? А если можно, то пожалуйста объясните как.

Получение системной информации о компьютере С++ - C++
Нужна программа которая выводит информацию о версии операционной системы о свободном месте на логических дисках, данные о памяти и.ид....

Получение информации о дисках установленных на компьютере - C++
Здравствуйте! Помогите мне пожалуйста написать консольное приложени на с++. В универе задали на лаб. работу.. Цель: изучение...

Получение информации о дисках, установленных на компьютере - C++ WinAPI
Помогите с лабораторной работой, в win api вообще не разбираюсь. Определить имя драйверов, типы драйверов, длину кластера, число...

16
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
13.10.2012, 01:59 #2
Нет уж.
Если нашли решение самостоятельно, поделитесь с другими.
Возможно, кто-нибуть будет искать тот же вопрос, который уже проиндексирован Googl-ом, а ответа здесь не окажется.
0
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
13.10.2012, 11:45  [ТС] #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Dragokas Посмотреть сообщение
нашли решение самостоятельно
Ладно

Bash
1
2
3
4
For /F "Tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do Call :Convert "%%J"
GoTo :EOF
:Convert
echo  процессор: %~1
Вот так название проца можно узнать , а всё остальное я не знаю...
3
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
13.10.2012, 18:17 #4
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
-Название процессора (название и Ghz)
-видяхи (название и скоко МБ)
Подсмотрел у Rob van der Woude http://www.robvanderwoude.com/files/hardware_xp.txt
Bash
1
2
3
4
5
6
FOR /F "tokens=1* delims==" %%A IN ('WMIC.EXE /Node:localhost Path Win32_VideoController Get Name^,AdapterRAM /Format:List ^| FIND.EXE "="') DO (
    echo %%~A=%%~B
)
FOR /F "tokens=1* delims==" %%A IN ('WMIC.EXE /Node:localhost CPU Get Name^,CurrentClockSpeed /Format:List ^| FIND.EXE "="') DO (
    echo %%~A=%%~B
)
0
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
13.10.2012, 20:35  [ТС] #5
Цитата Сообщение от Dragokas Посмотреть сообщение
Подсмотрел
Можно было не маяться ,а сделать вот так:
Bash
1
2
3
4
5
6
7
8
9
10
@echo off
For /F "Tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do Call :Convert "%%J"
GoTo :EOF
:Convert
echo  Процессор: %~1
FOR /F "tokens=2 delims==" %%J IN ('WMIC /Node:localhost Path Win32_VideoController Get Name /Value^| FIND.EXE "="') Do Call :Convert2 "%%J"
:Convert2
echo  Видеокарта: %~1
pause >nul
exit
Токо тут он показывает название встроенной видяхи и процессора , а название второй видяхи и их память -я ещё не разобрался... ну в смысле в формате "Видеопамять: **.**MB"
0
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
13.10.2012, 23:25 #6
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
Можно было не маяться ,а сделать вот так:
Во, еще один умный. И нафига там 100500+ переходов по меткам.

Ваш код не показывает сколько метров. Мой показывает. Или Вам опять уже не нужно???

Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
опиративы (тип и скоко GB)
Bash
1
2
3
@echo off
Set Memory=Полный объем физической памяти:
For /F "tokens=5-6" %%A In ('Systeminfo^|Find /i "%Memory%"') Do Echo %Memory% %%A %%B
Добавлено через 11 минут
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
Токо тут он показывает название встроенной видяхи и процессора , а название второй видяхи
Ну а код по ссылке показывает вторую видеокарту?
0
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
14.10.2012, 10:22  [ТС] #7
Цитата Сообщение от Dragokas Посмотреть сообщение
показывает вторую видеокарту
Ну да:
Bash
1
2
3
4
5
6
AdapterRAM=1900826624
Name=Intel(R) HD Graphics 3000
AdapterRAM=1073545216
Name=NVIDIA GeForce GT 520MX
CurrentClockSpeed=2300
Name=Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
А вот что мне показывает то ,что я натворил:
Bash
1
2
3
4
5
Полный объем физической памяти: 4 010 МБ 
Microsoft Windows [Version 6.2.9200]
64 разрядная операционная система 
Процессор: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz 
Видеокарта: Intel(R) HD Graphics 3000
А надо чтобы так было:
Bash
1
2
3
4
5
Microsoft Windows 8 Professional x64
Процессор: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz 
Оперативная память: 4*010 МБ 
Видеокарта1: Intel(R) HD Graphics 3000 
Видеокарта2: NVIDIA GeForce GT 520MX
Простите если сказал вам что-то не то...
0
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
16.10.2012, 11:58 #8

Не по теме:

Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
Простите если сказал вам что-то не то...
Да нет, просто злой.



Собственно разрядность и какая винда можно узнать той же командой Systeminfo, подставив в фильтр другие имена.

А еще разрядность можно определить быстро так:
Проверить наличие папки (алиаса) "Sysnative", - если папка %windir%\Sysnative существует,
значит система - х64.
... странно: только что проверил. Такой вариант работает только в среде VBS. If Exist - не справляется.

Плохо, нет у меня пациента с 2 видяхами. Не совсем я разобрал как реализован переход ко второму Instance.
Вечером напишу, попробуете проверить.
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
А вот что мне показывает то ,что я натворил:
Да, только Вы снова код не выложили.
1
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
16.10.2012, 13:26  [ТС] #9
Цитата Сообщение от Dragokas Посмотреть сообщение
код не выложили.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
title Информация
cls
echo.
Set Memory=Полный объем физической памяти:
For /F "tokens=5-6" %%A In ('Systeminfo^|Find /i "%Memory%"') Do Echo %Memory% %%A %%B
ver
if defined ProgramFiles(x86) (set sys=64) else (set sys=32)
echo %sys% разрядная операционная система
For /F "Tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do Call :Convert "%%J"
GoTo :EOF
:Convert
echo Процессор: %~1
FOR /F "tokens=2 delims==" %%J IN ('WMIC /Node:localhost Path Win32_VideoController Get Name /Value^| FIND.EXE "="') Do Call :Convert2 "%%J"
:Convert2
echo Видеокарта: %~1
echo.
Вот код , буду рад проверить ваше творение ,если напишите...

Добавлено через 29 минут
Ещё вы сказали папка Sysnative , у меня х64 ,но такой папки у меня нету...
0
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
16.10.2012, 14:00 #10
Она виртуальная (алиас) http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx.
В любом случае, этот способ в интерпретаторе почему-то не работает.
0
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
25.10.2012, 21:41  [ТС] #11
Есь код Показывает это:
Bash
1
2
3
4
Windows 8 Профессиональная x64 
Оперативная память: 4 010 МБ 
Процессор: Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz 
Видеокарта: Intel(R) HD Graphics 3000
Сам код:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
Set Memory=Полный объем физической памяти:
set ver=Название ОС:
if defined ProgramFiles(x86) (set sys=64) else (set sys=32)
For /F "tokens=5-6" %%A In ('Systeminfo^|Find /i "%ver%"') Do Echo Windows %%A %%B x%sys%
For /F "tokens=5-6" %%A In ('Systeminfo^|Find /i "%Memory%"') Do Echo Оперативная память: %%A %%B
For /F "Tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do Call :Convert "%%J"
FOR /F "tokens=2 delims==" %%J IN ('WMIC /Node:localhost Path Win32_VideoController Get Name /Value^| FIND.EXE "="') Do Call :Convert2 "%%J"
GoTo :EOF
:Convert
echo Процессор: %~1
:Convert2
echo Видеокарта: %~1
Pause >nul
exit
Там можно как-то объединить эти 2-е "systeminfo" ,а то загружается 2 раза , ещё чтобы он вторую видеокарту показывал (если есть)

 Комментарий модератора 
Зачем плодить темы?
0
Dragokas
Эксперт WindowsАвтор FAQ
16613 / 6998 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
31.10.2012, 04:29 #12
Вне темы:

Еще через WMIC можно:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
wmic COMPUTERSYSTEM get Name
wmic COMPUTERSYSTEM get domain
wmic COMPUTERSYSTEM get Manufacturer
wmic COMPUTERSYSTEM get Model
wmic COMPUTERSYSTEM get TotalPhysicalMemory
wmic OS get Version
wmic OS get CSDVersion
wmic OS get ServicePackMajorVersion
wmic OS get RegisteredUser
wmic CSPRODUCT get IdentifyingNumber
wmic CSPRODUCT get UUID
wmic OS get OSLanguage
Как подставлять можно посмотреть в теме: Копирование на флешку папки, имя которой меняется
1
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
05.02.2015, 03:52  [ТС] #13
Цитата Сообщение от Dragokas Посмотреть сообщение
Еще через WMIC можно
Я тут сделал большой скрипт, он показывает почти всё что нужно:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
@echo off
chcp 1251>nul
color 70
title Внимание! Сведения могут быть не точными!
echo.
echo Биос
echo __________________________
For /F "tokens=2 Delims==" %%J In ('wmic bios get caption /Value^|FindStr .') Do echo Название: %%J
echo.
echo Операционная система
echo __________________________
if defined ProgramFiles(x86) (set oper=x64) else (set oper=x32)
FOR /F "tokens=1* delims==" %%A IN ('wmic os get caption /Format:List ^| FIND "="') DO set "s=%%~B"
echo Название: %s% %oper%
For /F "tokens=2 Delims==" %%J In ('wmic os get buildnumber /Value^|FindStr .') Do echo Номер сборки: %%J
For /F "tokens=2 Delims==" %%J In ('wmic os get systemdrive /Value^|FindStr .') Do echo Установлена на диске: %%J
wmic os get servicepackmajorversion | 1>nul findstr "0" && echo Сервис пак: Не установлен || (
For /F "tokens=2 Delims==" %%J In ('wmic os get servicepackmajorversion /Value^|FindStr .') Do echo Сервис пак: %%J
)
echo Пользователь: %username%
For /F "tokens=2 Delims==" %%J In ('wmic os get numberofusers /Value^|FindStr .') Do echo Количество пользователей: %%J
For /F "tokens=2 Delims==" %%J In ('wmic computersystem get domain /Value^|FindStr .') Do echo Рабочая группа: %%J
echo.
echo Материнская плата
echo __________________________
For /F "tokens=2 Delims==" %%J In ('WMIC baseboard get manufacturer /Value^|FindStr .') Do echo Название: %%J
For /F "tokens=2 Delims==" %%J In ('WMIC baseboard get product /Value^|FindStr .') Do echo Модель: %%J
echo.
echo Процессор
echo __________________________
For /F "tokens=2 Delims==" %%J In ('wmic computersystem get numberofprocessors /Value^|FindStr .') Do echo Количество процессоров: %%J
For /F "tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do echo Название: %%J
FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get currentclockspeed /Format:List ^| FIND "="') DO set "s=%%~B"
echo Частота: %s% Мгц
FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get maxclockspeed /Format:List ^| FIND "="') DO set "s=%%~B"
echo Максимальная частота: %s% Мгц
set cachelevel=2
set cachelevelrus=второго
call :cache
set cachelevel=3
set cachelevelrus=третьего
call :cache
goto 1
:cache
FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get l%cachelevel%cachesize /Format:List ^| FIND "="') DO set "su=%%~B"
call :mbgb
if %su% GTR 1024 set /a su=%su%/1000
echo Кэш %cachelevelrus% уровня: %su% %uu%
exit /b
:1
FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get numberofcores /Format:List ^| FIND "="') DO set "s=%%~B"
FOR /F "tokens=1* delims==" %%A IN ('WMIC CPU Get numberoflogicalprocessors /Format:List ^| FIND "="') DO set "ss=%%~B"
echo Ядер: %s% Потоков: %ss%
echo.
echo Видеокарта
echo __________________________
set /a numik=0
FOR /F "tokens=1* delims==" %%A IN ('WMIC Path Win32_VideoController get AdapterRAM /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdo
goto 2
:vdo
set /a numik=%numik%+1
set /a sss=%s%/1024/1024
echo Видеопамять %numik%: %sss% Мб
exit /b
:2
set /a num=0
for /F "tokens=1* delims==" %%A IN ('WMIC Path Win32_VideoController get Name /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdol
goto 3
:vdol
set /a num=%num%+1
echo Видеокарта %num%: %s%
exit /b
:3
for /F "tokens=2 delims==" %%A IN ('WMIC Path Win32_VideoController get currenthorizontalresolution /Format:List ^| FIND "="') DO call :hor "%%A"
:hor
if not "%~1"=="" set hh=%~1
for /F "tokens=2 delims==" %%A IN ('WMIC Path Win32_VideoController get currentverticalresolution /Format:List ^| FIND "="') DO call :ver "%%A"
:ver
if not "%~1"=="" set vv=%~1
echo Текущее разрешение: %hh% x %vv%
echo.
echo Звуковая карта
echo __________________________
set /a num=0
FOR /F "tokens=1* delims==" %%A IN ('WMIC sounddev get Name /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdol
goto 3
:vdol
set /a num=%num%+1
echo Название устройства: %num%: %s%
exit /b
:3
echo.
echo Оперативная память
echo __________________________
set /a num=0
FOR /F "tokens=1* delims==" %%A IN ('WMIC memorychip get capacity /Format:List ^| FIND "="') DO set "s=%%~B" & call :vdols
goto 33
:vdols
set /a num=%num%+1
echo Слот памяти: %num%: %s% б
exit /b
:33
FOR /F "tokens=1* delims==" %%A IN ('WMIC os get totalvisiblememorysize /Format:List ^| FIND "="') DO set "su=%%~B" & call :vdod
goto 4
:vdod
call :mbgb
goto after
:mbgb
if %su% LSS 1 (set uu) else if %su% LSS 1024 (set uu=Кб) else if %su% GTR 1024 set uu=Мб
exit /b
:after
set /a sss=%su%/1024
echo Доступно: %sss% %uu%
exit /b
:4
for /F "tokens=2 Delims==" %%J In ('WMIC memphysical get memorydevices /Value^|FindStr .') Do echo Слотов для памяти: %%J
echo.
echo Переносные устройства
echo __________________________
For /F "tokens=2 Delims==" %%J In ('WMIC cdrom get id /Value^|FindStr .') Do echo Диск: %%J
For /F "tokens=2 Delims==" %%J In ('WMIC cdrom get volumename /Value^|FindStr .') Do echo Название: %%J
Pause >nul
exit
Картинка результата
Но!
1. Частота отображается в Мгц, а как сделать в Ггц? Максимальную можно так оставить потому что там типа по точнее, а вот просто частота...
2. Разрешение на некоторых системах не отображается почему-то, хотя я вроде сделал там проверку на это, как исправить?
3. Русские буквы не отображаются как надо, как исправить?
4. Память в слотах памяти отображается в байтах, а как сделать в Мб? Я пытался делить, а он пишет что "Неверное число. Числа ограничены 32 битами точности."
5. Ну и как сделать чтобы переносные устройства если у них нет названия и типа, то там показывало типа "Не найдено"?
P. S. На некоторых системах любые русские буквы коряво отображаются, даже если в начале прописана кодировка, приходится сохранять в полностью в другой кодировке, можно ли как-то это исправить?

Добавлено через 21 час 43 минуты
Пункт номер 1 решён!
2
volodin661
1663 / 848 / 139
Регистрация: 10.12.2013
Сообщений: 2,895
05.02.2015, 05:45 #14
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
Я тут сделал большой скрипт, он показывает почти всё что нужно:
Цитата Сообщение от Jeka_Osokin Посмотреть сообщение
1. Частота отображается в Мгц, а как сделать в Ггц? Максимальную можно так оставить потому что там типа по точнее, а вот просто частота...
2. Разрешение на некоторых системах не отображается почему-то, хотя я вроде сделал там проверку на это, как исправить?
3. Русские буквы не отображаются как надо, как исправить?
4. Память в слотах памяти отображается в байтах, а как сделать в Мб? Я пытался делить, а он пишет что "Неверное число. Числа ограничены 32 битами точности."
5. Ну и как сделать чтобы переносные устройства если у них нет названия и типа, то там показывало типа "Не найдено"?
P. S. На некоторых системах любые русские буквы коряво отображаются, даже если в начале прописана кодировка, приходится сохранять в полностью в другой кодировке, можно ли как-то это исправить?

Эти, а также другие вопросы можно порешать применив подход,
который называется < Мухи / Котлеты >

немного лирики:
Инструмент WMIC характерен тем, что выводит свои данные после обработки запроса в формате
XML, которые затем пропускаются через XML-stylesheet( XSL) по твоему выбору или по умолчанию.

Например, параметр /format:list - это не что иное, как пропускание через stylesheet textvaluelist.xsl, который живет в %systemroot%\system32\wbem\

Итак, возвращаемся: мухи - это данные, извлекаемые с помощью WQL-запросов WMIC,
котлеты - это их представление через XSL-трансформации.

с помощью XSL можно легко
а) менять кодировку
б) переводить байты в мегабайты итд,
так как в язык встроено больше 100 различных функций
( числовые, строковые, дата-время, булевы итд )

сейчас продемонстрирую как это реализовать:
запускаем для начала
Bash
1
wmic computersystem get
Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<COMMAND SEQUENCENUM="1" ISSUEDFROM="WINXP" STARTTIME="02-04-2015T23:39:32" EVERYCOUNT="0"><REQUEST><COMMANDLINE> computersystem get /format:rawxml  </COMMANDLINE>
<COMMANDLINECOMPONENTS><NODELIST><NODE>WINXP</NODE>
</NODELIST>
</COMMANDLINECOMPONENTS>
<CONTEXT><NAMESPACE>root\cimv2</NAMESPACE>
<ROLE>root\cli</ROLE>
<IMPLEVEL>IMPERSONATE</IMPLEVEL>
<AUTHLEVEL>PKTPRIVACY</AUTHLEVEL>
<LOCALE>ms_409</LOCALE>
<PRIVILEGES>ENABLE</PRIVILEGES>
<TRACE>OFF</TRACE>
<RECORD>N/A</RECORD>
<INTERACTIVE>OFF</INTERACTIVE>
<FAILFAST>OFF</FAILFAST>
<OUTPUT>STDOUT</OUTPUT>
<APPEND>STDOUT</APPEND>
<USER>N/A</USER>
<AGGREGATE>ON</AGGREGATE>
</CONTEXT>
</REQUEST>
<RESULTS NODE="WINXP"><CIM><INSTANCE CLASSNAME="Win32_ComputerSystem"><PROPERTY NAME="AdminPasswordStatus" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>3</VALUE>
</PROPERTY>
<PROPERTY NAME="AutomaticResetBootOption" CLASSORIGIN="Win32_ComputerSystem" TYPE="boolean"><VALUE>TRUE</VALUE>
</PROPERTY>
<PROPERTY NAME="AutomaticResetCapability" CLASSORIGIN="Win32_ComputerSystem" TYPE="boolean"><VALUE>TRUE</VALUE>
</PROPERTY>
<PROPERTY NAME="BootOptionOnLimit" CLASSORIGIN="Win32_ComputerSystem" PROPAGATED="true" TYPE="uint16"></PROPERTY>
<PROPERTY NAME="BootOptionOnWatchDog" CLASSORIGIN="Win32_ComputerSystem" PROPAGATED="true" TYPE="uint16"></PROPERTY>
<PROPERTY NAME="BootROMSupported" CLASSORIGIN="Win32_ComputerSystem" TYPE="boolean"><VALUE>TRUE</VALUE>
</PROPERTY>
<PROPERTY NAME="BootupState" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE>Normal boot</VALUE>
</PROPERTY>
<PROPERTY NAME="Caption" CLASSORIGIN="CIM_ManagedSystemElement" TYPE="string"><VALUE>WINXP</VALUE>
</PROPERTY>
<PROPERTY NAME="ChassisBootupState" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>3</VALUE>
</PROPERTY>
<PROPERTY NAME="CreationClassName" CLASSORIGIN="CIM_System" TYPE="string"><VALUE>Win32_ComputerSystem</VALUE>
</PROPERTY>
<PROPERTY NAME="CurrentTimeZone" CLASSORIGIN="Win32_ComputerSystem" TYPE="sint16"><VALUE>240</VALUE>
</PROPERTY>
<PROPERTY NAME="DaylightInEffect" CLASSORIGIN="Win32_ComputerSystem" PROPAGATED="true" TYPE="boolean"></PROPERTY>
<PROPERTY NAME="Description" CLASSORIGIN="CIM_ManagedSystemElement" TYPE="string"><VALUE>AT/AT COMPATIBLE</VALUE>
</PROPERTY>
<PROPERTY NAME="Domain" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE>WORKGROUP</VALUE>
</PROPERTY>
<PROPERTY NAME="DomainRole" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>0</VALUE>
</PROPERTY>
<PROPERTY NAME="EnableDaylightSavingsTime" CLASSORIGIN="Win32_ComputerSystem" TYPE="boolean"><VALUE>TRUE</VALUE>
</PROPERTY>
<PROPERTY NAME="FrontPanelResetStatus" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>3</VALUE>
</PROPERTY>
<PROPERTY NAME="InfraredSupported" CLASSORIGIN="Win32_ComputerSystem" TYPE="boolean"><VALUE>FALSE</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="InitialLoadInfo" CLASSORIGIN="CIM_UnitaryComputerSystem" PROPAGATED="true" TYPE="string"></PROPERTY.ARRAY>
<PROPERTY NAME="InstallDate" CLASSORIGIN="CIM_ManagedSystemElement" PROPAGATED="true" TYPE="datetime"></PROPERTY>
<PROPERTY NAME="KeyboardPasswordStatus" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>3</VALUE>
</PROPERTY>
<PROPERTY NAME="LastLoadInfo" CLASSORIGIN="CIM_UnitaryComputerSystem" PROPAGATED="true" TYPE="string"></PROPERTY>
<PROPERTY NAME="Manufacturer" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE>System manufacturer</VALUE>
</PROPERTY>
<PROPERTY NAME="Model" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE>System Product Name</VALUE>
</PROPERTY>
<PROPERTY NAME="Name" CLASSORIGIN="CIM_ManagedSystemElement" TYPE="string"><VALUE>WINXP</VALUE>
</PROPERTY>
<PROPERTY NAME="NameFormat" CLASSORIGIN="CIM_System" PROPAGATED="true" TYPE="string"></PROPERTY>
<PROPERTY NAME="NetworkServerModeEnabled" CLASSORIGIN="Win32_ComputerSystem" TYPE="boolean"><VALUE>TRUE</VALUE>
</PROPERTY>
<PROPERTY NAME="NumberOfLogicalProcessors" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint32"><VALUE>2</VALUE>
</PROPERTY>
<PROPERTY NAME="NumberOfProcessors" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint32"><VALUE>1</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="OEMLogoBitmap" CLASSORIGIN="Win32_ComputerSystem" PROPAGATED="true" TYPE="uint8"></PROPERTY.ARRAY>
<PROPERTY.ARRAY NAME="OEMStringArray" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE.ARRAY><VALUE>To Be Filled By O.E.M.</VALUE>
<VALUE>To Be Filled By O.E.M.</VALUE>
<VALUE>To Be Filled By O.E.M.</VALUE>
<VALUE>To Be Filled By O.E.M.</VALUE>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY NAME="PartOfDomain" CLASSORIGIN="Win32_ComputerSystem" TYPE="boolean"><VALUE>FALSE</VALUE>
</PROPERTY>
<PROPERTY NAME="PauseAfterReset" CLASSORIGIN="Win32_ComputerSystem" TYPE="sint64"><VALUE>-1</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="PowerManagementCapabilities" CLASSORIGIN="CIM_UnitaryComputerSystem" PROPAGATED="true" TYPE="uint16"></PROPERTY.ARRAY>
<PROPERTY NAME="PowerManagementSupported" CLASSORIGIN="CIM_UnitaryComputerSystem" PROPAGATED="true" TYPE="boolean"></PROPERTY>
<PROPERTY NAME="PowerOnPasswordStatus" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>3</VALUE>
</PROPERTY>
<PROPERTY NAME="PowerState" CLASSORIGIN="CIM_UnitaryComputerSystem" TYPE="uint16"><VALUE>0</VALUE>
</PROPERTY>
<PROPERTY NAME="PowerSupplyState" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>3</VALUE>
</PROPERTY>
<PROPERTY NAME="PrimaryOwnerContact" CLASSORIGIN="CIM_System" PROPAGATED="true" TYPE="string"></PROPERTY>
<PROPERTY NAME="PrimaryOwnerName" CLASSORIGIN="CIM_System" TYPE="string"><VALUE>bill gates</VALUE>
</PROPERTY>
<PROPERTY NAME="ResetCapability" CLASSORIGIN="CIM_UnitaryComputerSystem" TYPE="uint16"><VALUE>1</VALUE>
</PROPERTY>
<PROPERTY NAME="ResetCount" CLASSORIGIN="Win32_ComputerSystem" TYPE="sint16"><VALUE>-1</VALUE>
</PROPERTY>
<PROPERTY NAME="ResetLimit" CLASSORIGIN="Win32_ComputerSystem" TYPE="sint16"><VALUE>-1</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="Roles" CLASSORIGIN="CIM_System" TYPE="string"><VALUE.ARRAY><VALUE>LM_Workstation</VALUE>
<VALUE>LM_Server</VALUE>
<VALUE>NT</VALUE>
<VALUE>Potential_Browser</VALUE>
<VALUE>Master_Browser</VALUE>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY NAME="Status" CLASSORIGIN="CIM_ManagedSystemElement" TYPE="string"><VALUE>OK</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="SupportContactDescription" CLASSORIGIN="Win32_ComputerSystem" PROPAGATED="true" TYPE="string"></PROPERTY.ARRAY>
<PROPERTY NAME="SystemStartupDelay" CLASSORIGIN="Win32_ComputerSystem" PROPAGATED="true" TYPE="uint16"></PROPERTY>
<PROPERTY.ARRAY NAME="SystemStartupOptions" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE.ARRAY><VALUE>"Microsoft Windows XP Professional" /noexecute=optin /fastdetect</VALUE>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY NAME="SystemStartupSetting" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint8"><VALUE>0</VALUE>
</PROPERTY>
<PROPERTY NAME="SystemType" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE>X86-based PC</VALUE>
</PROPERTY>
<PROPERTY NAME="ThermalState" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>3</VALUE>
</PROPERTY>
<PROPERTY NAME="TotalPhysicalMemory" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint64"><VALUE>2146676736</VALUE>
</PROPERTY>
<PROPERTY NAME="UserName" CLASSORIGIN="Win32_ComputerSystem" TYPE="string"><VALUE>WINXP\admin</VALUE>
</PROPERTY>
<PROPERTY NAME="WakeUpType" CLASSORIGIN="Win32_ComputerSystem" TYPE="uint16"><VALUE>7</VALUE>
</PROPERTY>
<PROPERTY NAME="Workgroup" CLASSORIGIN="Win32_ComputerSystem" PROPAGATED="true" TYPE="string"></PROPERTY>
</INSTANCE>
</CIM>
</RESULTS>
</COMMAND>


и видим, что там много всего ненужного.
подбираем только нужные нам свойства:

Bash
1
wmic computersystem get TotalPhysicalMemory, Domain, NumberOfProcessors, NumberOfLogicalProcessors /format:rawxml
вот так уже полегче
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<COMMAND SEQUENCENUM="1" ISSUEDFROM="WINXP" STARTTIME="02-04-2015T23:52:43" EVERYCOUNT="0"><REQUEST><COMMANDLINE> computersystem get TotalPhysicalMemory, Domain, NumberOfProcessors, NumberOfLogicalProcessors /format:rawxml </COMMANDLINE>
<COMMANDLINECOMPONENTS><NODELIST><NODE>WINXP</NODE>
</NODELIST>
</COMMANDLINECOMPONENTS>
<CONTEXT><NAMESPACE>root\cimv2</NAMESPACE>
<ROLE>root\cli</ROLE>
<IMPLEVEL>IMPERSONATE</IMPLEVEL>
<AUTHLEVEL>PKTPRIVACY</AUTHLEVEL>
<LOCALE>ms_409</LOCALE>
<PRIVILEGES>ENABLE</PRIVILEGES>
<TRACE>OFF</TRACE>
<RECORD>N/A</RECORD>
<INTERACTIVE>OFF</INTERACTIVE>
<FAILFAST>OFF</FAILFAST>
<OUTPUT>STDOUT</OUTPUT>
<APPEND>STDOUT</APPEND>
<USER>N/A</USER>
<AGGREGATE>ON</AGGREGATE>
</CONTEXT>
</REQUEST>
<RESULTS NODE="WINXP"><CIM><INSTANCE CLASSNAME="Win32_ComputerSystem"><PROPERTY NAME="Domain" TYPE="string"><VALUE>WORKGROUP</VALUE>
</PROPERTY>
<PROPERTY NAME="NumberOfLogicalProcessors" TYPE="uint32"><VALUE>2</VALUE>
</PROPERTY>
<PROPERTY NAME="NumberOfProcessors" TYPE="uint32"><VALUE>1</VALUE>
</PROPERTY>
<PROPERTY NAME="TotalPhysicalMemory" TYPE="uint64"><VALUE>2146676736</VALUE>
</PROPERTY>
</INSTANCE>
</CIM>
</RESULTS>
</COMMAND>


теперь, имея перед глазами XML, создаем свой stylesheet
Jeka_Osokin.xsl ( кодировка UTF-8 )
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
      
<xsl:template match="/" >
 
 <xsl:value-of select="//RESULTS/CIM/INSTANCE/@CLASSNAME" />
 
    <xsl:text>& #10;</xsl:text>
    <xsl:text>-----------------------------------</xsl:text>
    <xsl:text>& #10;</xsl:text>
   
   <xsl:apply-templates />   
 
    </xsl:template>
 
      
<xsl:template match="@* | node()" >
 
      <xsl:apply-templates select="@* | node()"/>
 
</xsl:template>
 
  
<xsl:template match="PROPERTY" > 
 
    <xsl:value-of select="@NAME" /> : <xsl:choose>
 
        <xsl:when test = "contains(@NAME,'Memory')"> 
            <xsl:value-of select="round(VALUE div(1024*1024))"/>Mb
        </xsl:when>
    
        <xsl:when test = "contains(@NAME,'ClockSpeed')"> 
            <xsl:value-of select="round(VALUE div 1024)"/>GHz
        </xsl:when>
 
        <xsl:when test = "not(VALUE)"> 
            <xsl:text>Не найдено</xsl:text>  
        </xsl:when>
        
        <xsl:otherwise>
            <xsl:value-of select="VALUE" />
        </xsl:otherwise>
    
    </xsl:choose>
    
    <xsl:text>& #10;</xsl:text>                                         
                                                                     
</xsl:template>
 
</xsl:stylesheet>
ну и собственно сам ватник:
( можно отметить, что выглядит он скромно и с достоинством )
Jeka_Osokin.bat ( кодировка 866 )
1C
1
2
3
4
5
6
7
@echo off
@chcp 866
@echo ===
 
wmic computersystem get TotalPhysicalMemory, Domain, NumberOfProcessors, NumberOfLogicalProcessors /format:Jeka_Osokin.xsl
wmic CPU            get currentclockspeed /format:Jeka_Osokin.xsl
wmic cdrom          get volumename        /format:Jeka_Osokin.xsl
--------


PS: с кодировкой у них бардак, зачем-то сами перекодируют вывод из XSL в CP866,
хотя никто их об этом не просит.

PS2: если кто захочет скопировать, символы & #10; надо сжать(убрать пробелы между), пришлось для наглядности раздвинуть


Добавлено через 22 минуты
Output:

Кликните здесь для просмотра всего текста
===
Win32_ComputerSystem
-----------------------------------------------------------
Domain : WORKGROUP
NumberOfLogicalProcessors : 2
NumberOfProcessors : 1
TotalPhysicalMemory : 2047Mb


Win32_Processor
-----------------------------------------------------------
CurrentClockSpeed : 3GHz


Win32_CDROMDrive
-----------------------------------------------------------
VolumeName : Не найдено
VolumeName : X16-81637VS2010ProMSDN


А чтобы превратить вывод в HTML, понадобится полторы минуты приятной работы
5
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
05.02.2015, 07:00  [ТС] #15
Пункт номер 3 решён!
Цитата Сообщение от volodin661 Посмотреть сообщение
Эти, а также другие вопросы можно порешать применив подход,
Тут конечно много всего, но я как-то не хочу переделывать весь скрипт вызывая эти данные по другому пути!
Спасибо за помощь, может найду что-нибудь что поможет, а пока вопросы остаются актуальными, кроме 1 и 3
0
05.02.2015, 07:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2015, 07:00
Привет! Вот еще темы с ответами:

Копирование в базу Access информации о компьютере - VBScript/JScript
Здравствуйте ... Есть необходимость сбора информации о ПК в базу MDB (Имя компа...Имя юзера...IP) Перерыл очень много статей. Примерно...

Считывание информации о файле - FreeBSD
Всем здравствуйте. У меня такой вопрос. В моей программе нужно реализовать операцию ls -l. Я нашел информацию что это можно сделать с...

Считывание информации с COM порта - Visual Basic
Помогите пожалуста написать программу для считывания информации с СОМ порта (с датчика интенсивности света)и отображении ее в окне... в...

Считывание информации из TextBox - C#
Доброго времени суток! Вознила проблема со считыванием информации из текстбокса! Нужно считать оттуда кол-во Символов, слов, предложений, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru