Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Получить название процессора (http://forum.oszone.net/showthread.php?t=194501)

AD1DA5 20-12-2010 12:03 1570303

Получить название процессора
 
Приветствую участников форума!

Есть задача:

Имеется бат-файл типа: wmic cpu get name >cpu.txt
Задачу он свою выполняет. Сохраняет нужную мне информацию в текстовом файле. Но меня не устраивает кодировка получившегося текстовика (Юникод). Надо обычную Windows-кодировку.... И хотелось бы сделать его дополнительное редактирование прямо этим же батником: убрать верхнюю строчку и оставить только вторую. И третье условие: батник должен запускаться на многих машинах со съёмного жёсткого диска и сохрянять свой текстовик прямо на съмный носитель.

Текстовый файл, который получается:

Name
<cpuname>


Текстовый файл, который нужен:

<cpuname>

Т.е. командой батника необходимо убрать верхнюю строку текстового файла.

Надеюсь, понятно изложил суть проблемы... извиняюсь за корявость.... В программировании не особо разбираюсь. Жду помощи)

gora 20-12-2010 12:12 1570309

Попробуйте так:
Код:

For /F "tokens=* delims=" %%j In ('wmic cpu get name') Do Echo %%j>cpu.txt

AD1DA5 20-12-2010 12:29 1570329

Цитата:

Цитата gora
Попробуйте так:
Код:
For /F "tokens=* delims=" %%j In ('wmic cpu get name') Do Echo %%j>cpu.txt »

Спасибо! Приду домой попробую. А какой именно параметр данного кода отвечает за кодировку? чтобы можно было поиграться ещё самому и не задавать лишних вопросов....

gora 20-12-2010 12:40 1570339

Цитата:

Цитата AD1DA5
А какой именно параметр данного кода отвечает за кодировку? »

В коде не специального параметра влияющего на кодировку выходного файла. Просто используется не вывод самой команды wmic, а вывод встроенной команды Echo (cmd.exe). cmd.exe выводит в "своей" кодировке кириллица DOS (866), но т.к. кириллицы в выводе нет, то можете считать ее за ...
Цитата:

Цитата AD1DA5
обычную Windows-кодировку »


El Sanchez 20-12-2010 13:49 1570398

gora, он хочет, чтобы на выходе получился файл, кодировка которого ANSI(1251). C вашего позволения:
Код:

@Echo Off
For /F "Tokens=2 Delims==" %%J In ('WMIC CPU Get Name /Value^|FindStr .') Do Call :Convert "%%J"
CHCP 866 >nul
GoTo :EOF

:Convert
CHCP 1251 >nul
Echo.%~1>cpu.txt


gora 20-12-2010 13:56 1570401

Цитата:

Цитата El Sanchez
он хочет, чтобы на выходе получился файл, кодировка которого ANSI(1251). »

Я это понял. А теперь сравните полученные cpu.txt Ваш файл и мой, есть разница в кодировке? ;)

El Sanchez 20-12-2010 16:14 1570516

Цитата:

Цитата gora
есть разница в кодировке? »

У меня есть: ваш в досовской, мой в виндовой :yes:

AD1DA5 20-12-2010 22:39 1570737

И вот я наконец-то дома)

gora, Я проверил Ваш код на 3-х машинах. На первой всё получилось просто отлично! Я даже обрадовался тому, что всё получилось без использования команд конвертирования. Но попробовав ещё на двух увидел кракозябры. На одном под кракозябрами скрывалось название процессора, а на другом такая строчка: Режим вывода команд на экран (ECHO) включен. Переводил шрифтом Terminal. В чём может быть причина такой непостоянности?

El Sanchez, Ваш код пробовал пока только на одной машине (на своей) и о чудо! Нужная мне программа скушала полученный файл! Зе бест! Завтра попробую испытать ещё на паре компов. И ещё один вопрос: Можно ли используя Ваш код создать один файл .bat по такому же принципу получая информацию о других железках? (например: инфо о cpu в один файл сохранялась, о материнке в другой, но команды шли от одного батника)

PS: Как здесь благодарности раздаются?

kiripanda 21-12-2010 01:06 1570815

Цитата:

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\>wmic cpu get name
Name
Процессор Intel Pentium III Xeon
В наличии Intel Core 2 Duo E8300

AD1DA5 21-12-2010 02:23 1570845

kiripanda, Интересно... Но другого способа вытаскивания из cmd информации о системе вроде как нет...

kiripanda 21-12-2010 02:43 1570851

%PROCESSOR_IDENTIFIER% (но придётся пересчитывать Family-Model-Stepping в название)
или cpuz

AD1DA5 21-12-2010 11:31 1571055

kiripanda, C:\Documents and Settings\Manager>%processor_identifier%
"x86" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

to ALL Существует команда dxdiag /t <имя_файла> в результате которой получается текстовый файл с полной информацией о системе. Как с помощью батника вытащить из него только нужные строки в отдельные текстовики с нужной кодировкой. Подскажите синтаксис команд. Мне бы принцип понять....

Petya V4sechkin 21-12-2010 13:54 1571216

Цитата:

Цитата kiripanda
C:\>wmic cpu get name
Name
Процессор Intel Pentium III Xeon
В наличии Intel Core 2 Duo E8300

Хотфикс KB953955

kiripanda 21-12-2010 19:19 1571462

AD1DA5
Код:

dxdiag.exe /t dxdiag.tmp
findstr /c:Processor: dxdiag.tmp >cpu.txt
del dxdiag.tmp

echo %PROCESSOR_IDENTIFIER% >>cpu.txt


Petya V4sechkin, спасибо, получилось
Цитата:

C:\>wmic cpu get name
Name
Intel(R) Core(TM)2 Duo CPU E8300 @ 2.83GHz

AD1DA5 21-12-2010 22:57 1571646

kiripanda, Спасибо за разъяснение! Я уж и не думал, что на мою глупость ответят разумно :-)
Если Вам не сложно, ответьте, пожалуйста ещё на 4 вопроса:

1) Данный код может работать на компьютерах со съёмного носителя, если системный диск не "С"? Т.е. код универсален для любой машины и директории запуска батника?

2) Переменную идентификации процессора Вы указали. А можно узнать весь список переменных для dxdiag? Чтобы можно было узнать, например, инфо о видеокарте и других устройствах....

3) Запустив батник я обнаружил, что вместе с именем процессора там вписалось и ещё много мусора:
Processor: AMD Athlon(tm) XP 1800+, ~1.5GHz
x86 Family 6 Model 8 Stepping 1, AuthenticAMD

Можно оставить только: AMD Athlon(tm) XP 1800+, ~1.5GHz???

4) Можно будет добавить в этот код ещё несколько переменных, чтобы не создавать отдельный батник для каждого устройства?

Заранее спасибо.

kiripanda 21-12-2010 23:48 1571681

Код:

@echo off
dxdiag.exe /t dxdiag.tmp

(
findstr /c:"      Machine name:" dxdiag.tmp
echo.
findstr /c:"  Operating System:" dxdiag.tmp
echo.
findstr /c:"System Manufacturer:" dxdiag.tmp
findstr /c:"      System Model:" dxdiag.tmp
echo.
findstr /c:"          Processor:" dxdiag.tmp
findstr /c:"            Memory:" dxdiag.tmp
echo.
findstr /c:"        Card name:" dxdiag.tmp
findstr /c:"  Display Memory:" dxdiag.tmp
findstr /c:"    Current Mode:" dxdiag.tmp
echo.
findstr /c:"      Drive:" dxdiag.tmp
findstr /c:"      Model:" dxdiag.tmp
) >"%COMPUTERNAME%.txt"

del dxdiag.tmp


AD1DA5 22-12-2010 01:51 1571750

kiripanda, Извиняюсь, что не совсем верно сформулировал вопросы.

Буду конкретен:

Надо извлечь информацию о следующих устройствах:

- Операционная система: "Windows Server 2003, Enterprise Edition (5.2, Build 3790) Service Pack 2"
- Версия БИОСа: "AWARD Modular BIOS v6.00PG"
- Процессор: "AMD Athlon(tm) XP 1800+, ~1.5GHz"
- Оперативная память: "2048MB RAM"
- Материнская плата : "<модель>"
- Видеокарта: "NVIDIA GeForce MX 440"
- Разрешение экрана: "1280 x 1024 (32 bit) (60Hz)"
- Жёсткий диск: "<HDD1>, <HDD2> .... <HDDn>" (в столбик)
- Привод: "<CDROM1>, <CDROM2> .... <CDROMn>" (в столбик)
- Сетевые карты: "<NET1>, <NET2> .... <NETn>" (в столбик)
- Звуковая карта: "<soundcard_name>"

Каждая из выше приведённых строчек должна писаться в отдельный текстовый файл с назначаемым мной именем в батнике (например: инфо о ЦП пишется в файл cpu.txt, а об оперативке в ram.txt и так далее).
Каждый такой текстовик должен содержать только одну строку с конкретной информацией о железке (как примеры в кавычках) или если устройств несколько, например, HDD, то в столбик.
Ну ещё не забыть про норм кодировку и автозамену старых файлов-отчётов новыми при каждом повторном запуске батника.
Батник должен работать на всех системах семейства Microsoft, начиная с Windows XP и кончая "Семёркой", не зависимо от битности.

Если, то, что я перечислил возможно сделать с помощью командной строки, то это решит все проблемы и тему можно будет закрывать. Плохо разбираюсь в матчасти и возможно сильно захамил с требованиями, но всё же надеюсь :-)

El Sanchez 24-12-2010 11:54 1573475

AD1DA5, вариант скрипта, сохраняющего инфу в кодировке Windows-1251.
Код:

@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

P.S. Скрипт обязательно сохранить в кодировке DOS(866), т.е. Notepad не канает.

sov44 24-12-2010 16:04 1573642

El Sanchez, а можно сделать с опросом всех компьютеров локальной сети и записью параметров в отдельную папку для каждой машины?

AD1DA5 25-12-2010 02:25 1574033

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, Если не сложно, поскажите какие изменения можно внести дополнительно.

Iska 25-12-2010 03:24 1574050

Цитата:

Цитата AD1DA5
список сетевых адаптеров не полон( У меня на тестовой машине их стоит 4 штуки... а скрипт выдал мне только одну реальную + Hamachi »

Обратите внимание на:
Код:

…Win32_NetworkAdapter  Where ^"AdapterTypeId^=0 And NetConnectionStatus^=2^…
Цитата:

Цитата AD1DA5
2) в список видеокарточек затесался Radmin... не в тему... »

Что же делать, если он там присутствует :). Попробьуйте добавить по аналогии условие по имени устройства:
Код:

…Where Name ^<^> ^"bla-bla-bla^"…
Цитата:

Цитата AD1DA5
объём памяти оперативки и видеокарточки в байтах »

Извлекайте данные и делайте пересчёт перед выводом, либо же переходите на использование WSH с тем же WMI.

AD1DA5 25-12-2010 12:48 1574212

Iska
Цитата:

Цитата Iska
Обратите внимание на: »

Обратил, но ничего не понял, поэтому изменил строку на:
Код:

For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_NetworkAdapter get Caption /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "%%B" "%%B" "net.txt"
Единственное, что не смог сдесь сделать, это убрать кучу мусора после списка реальных адаптеров. Но это не страшно :-)

Также обнаружил, что не работает строка про HDD:
Код:

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_DiskDrive get Caption /VALUE^|FindStr .^|FindStr /n .') Do Call :_Func "%%A" "%%B" "%%B" "hdd.txt"
Цитата:

Цитата Iska
Извлекайте данные и делайте пересчёт перед выводом... »

Не подскажите как это сделать? Какие изменения внести в соответствующие строки?

Iska 25-12-2010 15:42 1574306

Цитата:

Цитата AD1DA5
Обратил, но ничего не понял, … убрать кучу мусора после списка реальных адаптеров…»

Сходите в Google [именно в Google, поскольку он всегда отдаёт преимущество MSDN в строке выдачи результатов запроса; впрочем, Bing тоже будет делать сие в силу своей принадлежности, а для данного конкретного случая адекватный результат даёт и Яndex]. Посмотрите на MSDN, что означают и какие значения могут принимать свойства «AdapterTypeId» и «NetConnectionStatus».
Цитата:

Цитата AD1DA5
Задумка скорее всего хорошая была, но почему-то не сработало.

Опять же, сходите и посмотрите описание «Win32_DiskDrive». Запустите:
Код:

wmic.exe DiskDrive get Caption, Model, InterfaceType
и посмотрите, какие значения свойства вообще были, когда «почему-то не сработало». Может, у Вас там вовсе нет «InterfaceType=IDE». У меня, например, нет :):
читать дальше »
Код:

Caption                                InterfaceType  Model
INTELRAID0                              SCSI          INTELRAID0
RaidArray                              SCSI          RaidArray
VMLite Miniport Dummy SCSI Disk Device  SCSI          VMLite Miniport Dummy SCSI Disk Device


Цитата:

Цитата AD1DA5
Не подскажите как это сделать? Какие изменения внести в соответствующие строки?

Не подскажу. Я делаю разбор немного иначе. Например, так:
читать дальше »
Код:

@echo off

for /f "usebackq tokens=1,2 delims==" %%i in (`wmic.exe ComputerSystem GET TotalPhysicalMemory /VALUE ^|find.exe "TotalPhysicalMemory"`) do (
        set /a iTotalPhysicalMemory = "%%j>>20"
        )
        echo %iTotalPhysicalMemory% Mb

for /f "usebackq tokens=1,2 delims==" %%i in (`wmic.exe path Win32_VideoController GET AdapterRAM /VALUE ^|find.exe "AdapterRAM"`) do (
        set /a iAdapterRAM = "%%j>>20"
        )
        echo %iAdapterRAM% Mb


El Sanchez 26-12-2010 15:31 1574832

Цитата:

Цитата AD1DA5
4) файл screenres.txt выглядит несколько странно:
Код:
1280 x 1024 x 4294967296 цв., 60 Hz
, B Hz
Напрягаяет наличие последней строки, не несущей никакого смысла. »

AD1DA5, потому что не все отредактировали (пропустили символ процента)
Код:

... Do Call :_Func "%%A" "%%C, %%B Hz" "%%C, %%B Hz" "screenres.txt"
Цитата:

Цитата Iska
Может, у Вас там вовсе нет «InterfaceType=IDE». У меня, например, нет »

Да уж, про SCSI я и забыл.
Цитата:

Цитата Iska
Я делаю разбор немного иначе »

Хороший разбор.
Цитата:

Цитата Iska
Сходите в Google »

Согласен, но и wmic дает вменяемую справку по свойствам, например:
Код:

wmic DiskDrive get /?:full

Iska 26-12-2010 16:26 1574859

Цитата:

Цитата El Sanchez
Согласен, но и wmic дает вменяемую справку по свойствам, »

А можно ли посредством самого «wmic.exe» получить перечень возможных значений перечисления, например, того же «InterfaceType»? Я такого не нашёл, оттого и предложил соотнестись с MSDN.

timbird 08-11-2012 12:38 2021452

Всем здравствуйте!
Подскажите как сделать так чтобы используя этот скрипт информация о компьютере записывалась не в разные файлы, а в один с именем допустим %computername%.txt ??

timbird 08-11-2012 14:06 2021515

Сам разобрался может кому будет полезно:
Код:

@Echo off
Echo Сбор информации о системе...

For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC OS GET Caption^,CSDVersion /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo OS:                %%B, %%C >> \\server\change\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC CPU GET Name^,MaxClockSpeed /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo CUP:                %%C, %%B MHz >> \\server\change\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC COMPUTERSYSTEM GET TotalPhysicalMemory /VALUE^|FindStr .^|FindStr /n .') Do Call echo RAM:                %%B bytes >> \\server\change\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC DISKDRIVE Where InterfaceType^=^'IDE^' GET Model /VALUE^|FindStr .^|FindStr /n .') Do Call echo HDD:                %%B >> \\server\change\%date%_%computername%.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 echo VIDEOCARD:        %%C, %%B bytes RAM >> \\server\change\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC BASEBOARD GET Manufacturer^,Product /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo MOTHERBOARD:        %%B, %%C >> \\server\change\%date%_%computername%.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 echo NETWORK CARD:        %%B >> \\server\change\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_SoundDevice GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call echo SOUND CARD:        %%B >> \\server\change\%date%_%computername%.txt
For /F "Tokens=1,3* Delims=,:" %%A In ('WMIC BIOS GET Manufacturer^,Name /FORMAT:CSV^|FindStr .^|More +1^|FindStr /n .') Do Call echo BIOS:                %%B, %%C >> \\server\change\%date%_%computername%.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 echo MONITOR:        %%C, %%B Hz >> \\server\change\%date%_%computername%.txt
For /F "Tokens=1,3 Delims==:" %%A In ('WMIC path Win32_CDROMDrive GET Name /VALUE^|FindStr .^|FindStr /n .') Do Call echo DRIVE:                %%B >> \\server\change\%date%_%computername%.txt

параметр \\server\change\%date%_%computername%.txt меняется на ВАШ путь и имя файла.txt !

mi_hay 04-06-2016 14:31 2640167

Добрый день, подскажите, как сделать так, чтобы dxdiag запустить, сохранить всю информацию в файле dxdiag.txt на рабочем столе и закрыть все открывшиеся в следствии этих действий окна и программы.
Т.е. чтобы нажал на бат файл и у тебя на рабочем столе появился обновлённый полный файл dxdiag.txt

Foreigner 04-06-2016 14:49 2640175

mi_hay, А если почитать справку?
Код:

dxdiag /?
dxdiag /t result.txt
dxdiag /x result.xml



Время: 01:07.

Время: 01:07.
© OSzone.net 2001-