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

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

Аватара для Sanja Alone

Ищу Человека…


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

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


Моя исправленная и дополненная + РАБОЧАЯ версия oeminfo.cmd
Код: Выделить весь код
@echo off
 
SET D=%SYSTEMROOT%\system32\
FOR %%d 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 %%d:\WIN51 SET CDROM=%%d:
rem Обеспечение правильности отработки мультизагрузочного CD/DVD
if exist %CDROM%\i386\winn1.sif (set winntsif=%CDROM%\i386\winn1.sif) else (set winntsif=%CDROM%\i386\winnt.sif)
 
rem Т.к. используется символ ">", то существующий файл oeminfo.ini будет перезаписан;
rem т.о. нет нужды его предварительно удалять
echo [General]> "%D%oeminfo.ini"
echo Manufacturer=Sanja Alone>> "%D%oeminfo.ini"
echo Model=Unattended XP DVD>> "%D%oeminfo.ini"
echo [OEMSpecific]>> "%D%oeminfo.ini"
rem Достаем из winnt.sif (winn1.sif) серийный номер - от нефиг делать
rem Это работает независимо от вида записи ProductKey=XXXX или ProductKey = XXXX (с пробелами)
rem Серийник не будет виден в окне "Сведения о поддержке"
rem При этом, в файле oeminfo.ini номер будет в строке SerialNo=XXXX
FOR /F "tokens=3 delims==] " %%i in ('find /I /N "ProductKey" %winntsif%') do (echo SerialNo=%%i>>"%D%oeminfo.ini")
echo [Support Information]>> "%D%oeminfo.ini"
echo Line1=Installation Date: %date%>> "%D%oeminfo.ini"
echo Line2=>> "%D%oeminfo.ini"
echo Line3=Installed Hotfixes:>> "%D%oeminfo.ini"
echo Line4=>> "%D%oeminfo.ini"
 
REM Line Number
SET i=5
 
rem Мне интересно видеть все, что установилось из каталога SVCPACK, 
rem поэтому маску KB*.exe я заменил на *.exe
rem (без ключевого слова usebackq команда dir будет воспринята как 
rem имя файла для подстановки в цикл FOR с последующей выдачей сообщения 
rem об отсутствии такого файла в текущем каталоге).
For /F "usebackq tokens=1 delims=." %%j in (`dir /B %CDROM%\I386\SVCPACK\*.exe`) do ( (set kbname=%%j) & (call :myprint) )
rem Выход из этого пакетного файла.
rem Команда GOTO принимает в качестве метки перехода строку :EOF, которая вызывает
rem передачу управления в конец текущего пакетного файла. Это позволяет легко
rem выйти из пакетного файла без определения каких-либо меток. (из справки по goto)
GOTO :EOF
 
:myprint
echo Line%i%=%kbname%>> "%D%oeminfo.ini"
SET /A i+=1
Я постарался все объяснить в комментариях - читайте.

Отправлено: 07:07, 11-06-2005 | #23