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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] создания отчета, содержащего "Software part" и "Hardware part" (http://forum.oszone.net/showthread.php?t=188683)

Tw!ster74 18-10-2010 20:15 1521747

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

hxygen 18-10-2010 20:50 1521775

Дружище, нам надо объединятся, мне тоже нужно примерно то же самое что и тебе.

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

@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 1522037

Код:

@Echo Off
systeminfo.exe
pause


amel27 19-10-2010 09:04 1522041

что из этого нужно?.. :)
Код:

@(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 1522255

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

gora 19-10-2010 15:07 1522317

Как-то так:
Код:

@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 1522435

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

gora 19-10-2010 18:47 1522487

Код:

@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 1522579

gora, спасибо огромное :clapping:


Время: 00:02.

Время: 00:02.
© OSzone.net 2001-