Показать полную графическую версию : [решено] Добавление OEM информации - все вопросы
Страниц :
[
1]
2
3
4
5
6
7
8
9
10
11
12
Изменение OEM информации и логотипа (http://oszone.net/3102)
Исправленный и дополненный oeminfo.cmd (http://wiki.oszone.net/index.php/Изменение_OEM_информации)
http://wiki.oszone.net/images/7/71/Support_Information.jpg
VseDoFeNi
18-05-2005, 22:26
ANDYru
Так должен работать.
cmdow @ /HID
@echo off
SET D=%SYSTEMROOT%\system32\
if exist "%D%oeminfo.ini" del "%D%oeminfo.ini" /q
SET CDROM=%~d0
echo [General] >> "%D%oeminfo.ini"
echo Manufacturer=Автор версии : ANDY >> "%D%oeminfo.ini"
echo Model=Корпоративная Версия >> "%D%oeminfo.ini"
echo [Support Information] >> "%D%oeminfo.ini"
echo Line1=Дата установки системы : %date% >> "%D%oeminfo.ini"
echo Line2= >> "%D%oeminfo.ini"
echo Line3=Время установки системы : %time% >> "%D%oeminfo.ini"
echo Line4= >> "%D%oeminfo.ini"
echo Line5=Установленные обновления : >> "%D%oeminfo.ini"
echo Line6= >> "%D%oeminfo.ini"
SET i=7
For /F "tokens=1* delims=." %%k in ('dir "%CDROM%\I386\SVCPACK\KB*.CA_" /b') do ( (set kbname=%%k) & (call :myprint) )
GOTO :EOF
:myprint
echo Line%i%=%kbname% >> "%D%oeminfo.ini"
SET /A i=%i%+1
:EOF
Если это весь батник, в последней строке :EOF можно не писать - и так уже End Of File.
И еще, убери все пробелы в конце каждой строки, если не нужны специально.
Там похоже пробелы лишние в строке For /F "tokens=1 delims...
Должно быть
For /F "TOKENS=1 delims=.exe" %%j in ('dir /B %CDROM%\I386\svcpack\KB*.exe') do ((set kbname=%%j) & (call :myprint))
VseDoFeNi
18-05-2005, 23:53
Vadikan
в качестве разделителя достаточно точки - "delims=."
VseDoFeNi
Согласен. Кстати, ты свой файл из cmdlines.txt запускаешь? Я так понял строчку SET CDROM=%~d0
VseDoFeNi
19-05-2005, 06:15
Vadikan
Это я поправил просто тот, который ANDYru запостил. А сам я ничего не запускаю, просто лежит тут $OEM$\$$\System32\ давным давно, я уж про него и забыл совсем :)
VseDoFeNi
С такой поправкой как SET CDROM=%~d0 его можно только с CD запускать. Т.е. из cmdlines.txt...
VseDoFeNi
19-05-2005, 07:59
Vadikan
И да, и нет одновременно. Если его запустить из промежуточного батника, который будет запущен из cmdlines.txt, можно эту строчку вообще в промежуточный перенести, даже если сам OEMInfo.cmd на HDD лежать будет. Еще от параметров запуска зависит...
спасибо ответившим ! -но проблема осталась :)
дабавлю что OEMINFO.cmd запускается из RUNONCEEX.cmd
.
.
REG ADD %KEY%\050 /VE /D "добавление OEM инфы" /f
REG ADD %KEY%\050 /V 1 /D "%CDROM%\PROGRAMS\UTIL\oeminfo.cmd" /f
.
.
а RUNONCEEX.cmd соответственно из CMDLINES.txt
[COMMANDS]
"runonceex.cmd"
VseDoFeNi
19-05-2005, 09:28
ANDYru
пути не совпадают у тебя, цикл с ошибкой был....
Если через RunOnceEx посмотри значения в реестре :)
дабавлю что OEMINFO.cmd запускается из RUNONCEEX.cmd
он запускается именно из реестра у тебя.
верни на место строку
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\WIN51IP.SP2 SET CDROM=%%d:
все будет работать.
А вообще путей много :)
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\WIN51IP.SP2 SET CDROM=%%d:
такая строчка есть и в OEMINFO.cmd и в RUNONCEEX.cmd
сам RUNONCEEX.cmd - отрабатывает без проблемм и запускает OEMINFO.cmd - он тоже отрабатывает - только не всё - не добавляются в текстовик oeminfo.ini - список KB*.ca_ - находяшиеся на установочном сидюке - (только на конце чтоб после . было не ca_ а exe или дез расширения вовсе
- то есть хочу чтоб было в итоге
Дата установки системы : 19.05.2005
Время установки системы : 15.03 12:51
Установленные обновления :
KB873333 KB873339 KB884883 KB885222 KB885250 KB885626 KB885835
KB885836 KB885894 KB886185 KB886677 KB886716 KB887472 KB887606
KB887742 KB887797 KB888113 KB888302 KB889016 KB890175 KB890831
KB890859 KB890923 KB891781 KB893066 KB893086 KB893357 KB893803
а получается только :
Дата установки системы : 19.05.2005
Время установки системы : 15.03 12:51
Установленные обновления :
? - что не так делаю
VseDoFeNi
19-05-2005, 18:28
ANDYru
Запусти
For /F "tokens=1* delims=." %%k in ('dir "%CDROM%\I386\SVCPACK\KB*.CA_" /b') do ( (set kbname=%%k) & (call :myprint) )
GOTO :EOF
:myprint
echo Line%i%=%kbname% >> "%D%oeminfo.ini"
SET /A i=%i%+1
:EOF
с HDD только путь укажи к папке правильный, увидишь как отработает, потом сделаешь выводы.
толи я не то чтото делаю - просто загадка
пердыдущий пост заработал - но ! Но только если вместо "%CDROM% указываю конкретный диск - и ещё пытался обойтись без сидюки - зделал
For /F "tokens=1* delims=." %%k in ('dir "%SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\KB*.cat" /b') do ( (set kbname=%%k) & (call :myprint) )
- итог не пашет такая строка !
а так делаю пашет
rem For /F "tokens=1* delims=." %%k in ('dir "C:\Program Files\EasyBoot\disk1\I386\SVCPACK\KB*.ca_" /b') do ( (set kbname=%%k) & (call :myprint) )
VseDoFeNi
20-05-2005, 09:35
ANDYru
%SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
Сними с файлов атрибут "скрытый" должно заработать.
если они в папке %SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
при установке ставятся с атрибутами - то вопрос как в банике перед их проверкой снять им атрибут "скрытый"
загвоздка получается
зы я ещё не утомил ?
Vovanchik
20-05-2005, 15:58
ATTRIB -H -S -R %SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\file.name
эта команда снимает атрибуты с файла
ATTRIB +H +S +R %SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\file.name
эта восстанавливает
ура ! сработало ! вот мой итоговый вариан без заморочек с сидюком
cmdow @ /HID
@echo off
SET D=%SYSTEMROOT%\system32\
if exist "%D%oeminfo.ini" del "%D%oeminfo.ini" /q
echo [General] >> "%D%oeminfo.ini"
echo Manufacturer=Автор версии : ANDY >> "%D%oeminfo.ini"
echo Model=Корпоративная Версия >> "%D%oeminfo.ini"
echo [Support Information] >> "%D%oeminfo.ini"
echo Line1=Дата установки системы : %date% >> "%D%oeminfo.ini"
echo Line2= >> "%D%oeminfo.ini"
echo Line3=Время установки системы : %time% >> "%D%oeminfo.ini"
echo Line4= >> "%D%oeminfo.ini"
echo Line5=Установленные обновления : >> "%D%oeminfo.ini"
echo Line6= >> "%D%oeminfo.ini"
SET i=7
ATTRIB -H -S -R %SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\KB*.cat
For /F "tokens=1* delims=." %%k in ('dir "%SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\KB*.cat" /b') do ( (set kbname=%%k) & (call :myprint) )
GOTO :EOF
:myprint
echo Line%i%=%kbname% >> "%D%oeminfo.ini"
SET /A i=%i%+1
:EOF
на нём пожалуй и оттанавлюсь ! всем огромное спасибо за оказанное моей проблеме внимание
правда вот интересно можно ли сделать так чтобы перечень файлов
Line7=KB873333
Line8=KB873339
Line9=KB884883
Line10=KB885222
Line11=KB885250
Line12=KB885626
Line13=KB885835
Line14=KB885836
Line15=KB885894
Line16=KB886185
Line17=KB886677
Line18=KB886716
Line19=KB887472
Line20=KB887606
Line21=KB887742
Line22=KB887797
Line23=KB888111
Line24=KB888113
Line25=KB888302
Line26=KB889016
Line27=KB890175
Line28=KB890831
Line29=KB890859
Line30=KB890923
Line31=KB891781
Line32=KB893066
Line33=KB893086
Line34=KB893357
Line35=KB893803
был таким
Line7=KB873333 KB873339 KB884883 KB885222 KB885250 KB885626
Line8=KB885835 KB885836 KB885894 KB886185 KB886677 KB886716
Line9=KB887472 KB887606 KB887742 KB887797 KB888111 KB888113
Line10=KB888302 KB889016 KB890175 KB890831 KB890859 KB890923
Line11=KB891781 KB893066 KB893086 KB893357 KB893803
так гораздо нагляднее и красивее !
мужики подскажитк как сделать чтобы было как в предыдущем посту в последнем синем окне (разбиение найденных КВ***** было не по одному в строчке а по 6 шт подряд затем опять 6 шт след. стокой и так пока не закончатся все найденные КВ*****
ANDYru
Тебе нужно переписать часть кода
:myprint
echo Line%i%=%kbname% >> "%D%oeminfo.ini"
SET /A i=%i%+1
так чтобы он формировал строку из шести КВ, а затем писал ее в файл.
Как конкретно, разбирайся с языком Bat-файлов (bath).
Я где-то натыкался на инфу что можно делать вычисления в команде SET. Так что все реально.
vserd
спасибо конечно (я и сам знал что часть кода надо переписать - вот только языка бат не знаю настолько чтобы сделать это без чьеё либо помощи - иначи сюда бы не писал)
может кто нибуть из владеющих Языком научит Дурака :) - буду весьма благодарен
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.