Пожалуй, самое простое, хотя и не самое удачное решение. Команда на запуск файла прописывается в [GuiRunOnce]. Соответственно запуск файла происходит при первом входе в систему. Пример такого файла:
CLS @echo off TITLE Software Installation
:POWERTOY SET Choice= SET /P Choice=Install TweakUI 2.10 Powertoy [y/n]? IF /I `%Choice%`==`n` goto :NERO IF /I `%Choice%`==`y` ( ECHO Installing TweakUI 2.10 Powertoy ECHO Please wait... start /wait %systemdrive%\Install\TweakUI.msi /qn ECHO. ) else goto :POWERTOY
:NERO SET Choice= SET /P Choice=Install Nero Burning ROM v5.5.10.5.54 [y/n]? IF NOT `%Choice%`==`` SET Choice=%Choice:~0,1% IF /I `%Choice%`==`n` Goto :EXIT IF /I `%Choice%`==`y` ( ECHO Installing Nero Burning ROM v5.5.10.5.54 ECHO Please wait... start /wait %systemdrive%\Install\Nero551054.exe /silent /noreboot ECHO.) else goto :NERO
:EXIT EXIT
Перед установкой каждого приложения пользователю задается вопрос с вариантами ответа y(es)/n(o). Если ответ Yes, то производится установка приложения и переход к следующему, предваряемый аналогичным вопросом. Если ответ No, то сразу осуществляется переход к следующему приложению.
Преимущества: простота
Недостатки: отсутствие графического интерфейса, приходится сидеть и ждать установки каждого приложения, чтобы затем определиться с выбором: устанавливать следующее приложение или нет.
@echo off rem какой путь нужно дописать в переменную Path set addtopath=%ProgramFiles%\7-Zip rem извлечение текущего содержимого переменной Path
rem !ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции rem (ASCII-код символа после знака "равно" в выделенном фрагменте должен быть 09) for /F "tokens=3 delims= " %%j in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do (set curpath=%%j) rem проверка наличия дописываемого значения в переменной Path (для избежания дублирования) for /F %%j in ('echo %curpath% ^| find /C /I "%addtopath%"') do (set isinpath=%%j) rem если дописываемого пути нет в переменной Path, то дополняем ее if %isinpath% == 0 ( reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%curpath%;%addtopath%" /f )
Использование (пауза на 1-60 секунд):
call :sleep [пауза]
Пример:
@echo off :: Пример использования :: Некоторые действия echo Сейчас %time:~0,-3% :: пауза на 15 секунд call :sleep 15 :: Другие действия echo Сейчас %time:~0,-3% goto :EOF
:sleep echo Пауза на %1 секунд... set /a ftime=%time:~6,-3%+%1 if %ftime% GEQ 60 set /a ftime-=60 :loop set ctime=%time:~6,-3% if /i %ftime% NEQ %ctime% goto :loop goto :EOF
Автор: Вадим Стеркин aka Vadikan
Иcточник: unattended.oszone.net
Наши форумы
Опубликована - 23.12.2007
© Все права защищены OSzone.net 2001-2008. Материалы взяты с сайта unattended.oszone.net. Дальнейшее применение материалов в других печатных изданиях, включая электронные статьи, должно сопровождаться указанием имени сайта unattended.OSzone.net и имени автора. |
Распечатано 23.12.2007 |
Спроeктировала и разработала сайт Ginger |