Войти

Показать полную графическую версию : [решено] создания отчета, содержащего "Software part" и "Hardware part"


Tw!ster74
18-10-2010, 20:15
Такое вот задание:
Написать пакетный фаил для создания отчета, содержащего "Software part"(программная часть), включающую информацию о содержимом корневых каталогов всех логических дисков в системе и "Hardware part" (аппаратная часть), включающую свдиния о конфигурации компьютера и ОС, сведения о безопастности, параметры оборудования, такие как ОЗУ, дисковое пространство, сетевые карты и другие. Файл-отчет копируеться в некоторый сетевой каталог, задаваемый пакетным параметром, под именем, отражающим имя компьютера, с которого получен этоот ответ. В конце выводить сообщения вида "Отчет находиться в сетевом катологе <путь>"

hxygen
18-10-2010, 20:50
Дружище, нам надо объединятся, мне тоже нужно примерно то же самое что и тебе.

Вот что я пока сделал, это определение типа процессора, но в отчёт не выводится, тупо в консоли.

@echo off
regedit.exe -ea nt.txt "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0" &
@for /f "delims=" %%a in ('^<"nt.txt" find /i "ProcessorNameString"') do @(set "$a=%%a"
SetLocal EnableDelayedExpansion& echo !$a:~22!& EndLocal) &
del nt.txt


В окно батника выводится имя процессора. Сейчас сижу, ломаю голову где же данные об ОЗУ надыбать =)

gora
19-10-2010, 08:58
@Echo Off
systeminfo.exe
pause

amel27
19-10-2010, 09:04
что из этого нужно?.. :)
@(echo --- Base Board ----------
wmic baseboard get * /value
echo --- BIOS ----------------
wmic bios get * /value
echo --- Boot Config ---------
wmic bootconfig get * /value
echo --- CPU -----------------
wmic cpu get * /value
echo --- Operating System ----
wmic os get * /value
echo --- Computer System -----
wmic computersystem get * /value
echo --- Network -------------
wmic nic where "NOT PNPDeviceID LIKE 'ROOT\\%%'" get * /value
echo --- IP Config -----------
wmic nicconfig where "IPEnabled=TRUE" get * /value
)|findstr /ve "="|more
полный список параметров WMIC: http://ss64.com/nt/wmic.html

Tw!ster74
19-10-2010, 13:50
gora, а как вот эту часть задания сделать?
Файл-отчет копируеться в некоторый сетевой каталог, задаваемый пакетным параметром, под именем, отражающим имя компьютера, с которого получен этоот ответ. В конце выводить сообщения вида "Отчет находиться в сетевом катологе <путь>"

gora
19-10-2010, 15:07
Как-то так:@Echo Off
:: Кодировка файла 866
:: Запуск файла с параметром в котором указан "некоторый сетевой каталог"
If "%~1"=="" Echo Отсутствует параметр '%%1'.& Pause>Nul&Exit
For /F "tokens=1* delims=:" %%i In ('systeminfo.exe') Do If "%%i"=="Имя узла" Set nComp=%%j
Set nComp=%nComp: =%
ChCp 1251>Nul
systeminfo.exe>report.txt
ChCp 866>Nul
Copy report.txt "%~1\%nComp%_report.txt">Nul
Echo Отчет находиться в сетевом катологе '%~1'"
Pause>Nul

Tw!ster74
19-10-2010, 17:32
gora, сделал все как выше указано но вот без этой команды:
If "%~1"=="" Echo Отсутствует параметр '%%1'.& Pause>Nul&Exit
все работает, только в отчете вместо русских букв, иероглиф

gora
19-10-2010, 18:47
@Echo Off
SetLocal enabledelayedexpansion
:: Кодировка файла 866
:: Запуск файла с параметром в котором указан "некоторый сетевой каталог"
:: If "%~1"=="" Echo Отсутствует параметр '%%1'.& Pause>Nul&Exit
(
For %%o In (C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do If Exist %%o:\. (
Dir "%%o:\"
Echo ----------------------------------------------------------------
)
For /F "tokens=1* delims=:" %%i In ('systeminfo.exe') Do (
Echo %%i:%%j
If "%%i"=="Имя узла" Set nComp=%%j
)
Echo ----------------------------------------------------------------
)>report.txt
Set nComp=%nComp: =%
win_iconv.exe -f CP866 -t CP1251 report.txt > report1251.txt
Copy report1251.txt "%~1\%nComp%_report.txt"
Echo Отчет находиться в сетевом катологе '%~1'"
Pause>Nul
Конвертер кодировки прикрепил.

Tw!ster74
19-10-2010, 20:31
gora, спасибо огромное :clapping:




© OSzone.net 2001-2012