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

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

Аватара для Boa Soft

Компьютерный шаман


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

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


Цитата:
копирование папки i386 перенесли на T13
а планируется ли как нибудь выкрутиться без этой операции в будующих релизах?
Если ТЕБЕ это не нужно - отключи в Finish.cmd.

Цитата:
Правильно ли я понял (сори я не очень разбераюсь в батниках), если мой DRIVERS.EXE распаковываетса в %SystemRoot%\Drivers , то в PreSetup.cmd мне надо поменять
Новая версия не работает более с SFX. Все идет в простых архивах 7z. Так проще. Если надо - замени распаковку архивов на запуск своего sfx. Более ничего не надо менять. Скрипт уже проверенный и не дает проблем.

presetup.cmd

Код: Выделить весь код
@ECHO OFF

REM Set variables
// Это куда распаковываются Башратовские архивы.
SET DRVROOT=%SystemDrive%\
// Это куда ляжут после распаковки драйвера
// В его архивах такая структура
// .\D
//       \имя класса драйверов
//                                             \папка1
//                                             \папкаN

SET DRVDIR=%DRVROOT%\D

//имя папки, где лежат упакованные в архивы драйвера на сд (можно и в корне HDD)
SET OEMDIR=DRV

// Выбор метода 0 - через setdevicepath 1- SetupCopyOEMInf
SET CopyInf=0

//происк диска с папкой упакованных драйверов.

REM find driver arhives folder at TAGFILE
FOR %%i 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 "%%i:\%OEMDIR%" set CDDRIVE=%%i:

//Распаковка архивов

CD /D %DRVROOT%
REM auto unpacking all driver 7z arhive
%SystemRoot%\system32\7za.exe x -y -aoa %CDDRIVE%\%OEMDIR%\*.7z -o"%DRVROOT%"

//Проверяем, были ли распакованны драйвера, если нет - считаем, что они в распакованном виде уже лежат на HDD в DRIVERS
REM Check HDD or RIS mode
IF NOT EXIST %DRVDIR% SET DRVDIR=%DRVROOT%\DRIVERS

// Обход дерева каталогов драйверов или прекопирование Inf

IF %CopyInf%==0 (
  REM prepare install signed or unsigned drivers
  REM RegPath metod
%SystemRoot%\system32\SETPATH.EXE %DRVDIR%
) ELSE ( 
  REM prepare install signed or unsigned drivers
  REM CopyOemInf metod
%SystemRoot%\system32\CopyInf.exe %DRVDIR%
)

//Запуск WATCHDRV.EXE

REM supress check signed drivers
Start %SystemRoot%\system32\WATCHDRV.EXE

EXIT

Обращаю внимание, что setup в пакете - новая версия, которая переименовывает и запускает реальный setup сама.

Цитата:
Кстати могу ли я в самом конце из RunOnceEx.cmd убить C:\WINDOWS\I386 ?
Смотри первое предложение. Но, не проще ли DEL %SystemRoot%\system32\*.sif ???

PS Обьясняю еще раз. На очень многих ноутах и фабрично предустановленных брендовых компах присутствует или в корне или в папку винды папка i386 дистрибутива. Иногда в порепаном виде - удалены средства установки (winnt, winnt32 и некотрые вложенные папки ).
И все source* в реестре прописаны на неё.
Сделанно это для того, чтобы уменьшить число обращений юзерей в ТП. при таком методе при доустановке опциональных компонентов не надо втавлять диск. При порче вайлов WFP просто возьмет из этой папки файлы, а не будет просить диск.

Так что, если не надо - отключите в Finish, поставив SET CopySrc=0

PS2 Скоро выложу свою версию setup, конфигурируемую на основе дополнительной секции в файле ответов.
Сделано на основе наблюдения, что виндовс игнорирует неизвестные ему секции и значения в файле ответов, но файл с небольшими дополнениями копируется в $winnt$.sif. Поэтому при запуске setup мы просто обрабатываем дополнительную секцию этого файла и делаем выводы. Могу сделать при отсутствии секции вывод диалога выбора параметров.

-------
Человеческая лень - главная движущая сила технического прогресса.


Отправлено: 11:04, 21-04-2006 | #97