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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Не срабатывают пакетные файлы при запуске из [GuiRunOnce] (http://forum.oszone.net/showthread.php?t=58362)

Vas 14-12-2005 23:13 383174

Помогите разобраться в причине незапуска install.cmd вида
Цитата:

cd "Office 2003 Pro"
call setup.cmd
cd ..
cd "K-Lite v2.45f"
call setup.cmd
cd ..
дальше запускается
setup.cmd из папки Office 2003 Pro
Цитата:

start/wait setup.exe /qb TRANSFORMS="vas.MST"
copy "%ALLUSERSPROFILE%\ѓ«*ў*®Ґ ¬Ґ*о\Џа®Ја*¬¬л\Microsoft Office\Microsoft Office Word 2003.lnk" "%ALLUSERSPROFILE%\ђ*Ў®зЁ© бв®«\"
дальше setup.cmd из папки K-Lite v2.45f
Цитата:

start/wait klcodec245f.exe /silent /loadinf=".\silent.inf"
Инсталяха: WinXP_sp2_vlk + DriverPack, в winnt.sif прописано
Цитата:

[GUIRunOnce]
command9 = "%SystemDrive%\D\BTS_DPs_finish.cmd"
command10 = "%SystemDrive%\Install&Crack\install.cmd"
При удалении install.cmd из папки %SystemDrive%\Install&Crack при первом входе в с-му(после завершения "%SystemDrive%\D\BTS_DPs_finish.cmd") вылетает ошибка (отсутствует %SystemDrive%\Install&Crack\install.cmd).
Когда я запускаю этот же файл ручками %SystemDrive%\Install&Crack\install.cmd то всё поисходит по плану, все програмки устанавливаются и регистрируются.
Что я делаю не так?

Vadikan 15-12-2005 00:42 383207

Vas
Я бы убрал & из имени папки. А вообще, сама она копируется на HDD во время установки?

Vas 15-12-2005 00:59 383214

Цитата:

А вообще, сама она копируется на HDD во время установки?
Конечно копируется, иначе вести речь о невозможности запуска было бы бессмыслено.

И ещё один вопрос: инсталяция офиса2003 копируется на HDD с ошибками, тоесть при запуске инсталяхи офиса с HDD получаю ошибки о повреждении некоторых файлов, запуск той же инсталяхи с CD(откуда собственно и копировалась инсталяха на HDD) происходит гладко и без ошибок. Причём эта проблемма только с инсталяхой оффиса, все остальные приложения устанавливаются без ошибок...
То же самое при запуске офиса с HDD в виртуалке.
Похоже как-бы на плохую память(распаковка архива большого обьёма)?

Vas 17-12-2005 21:26 384204

Vadikan
Цитата:

Я бы убрал & из имени папки.
Пробовал, к сожалению это не помогло.

Какие ещё будут предложения?

Vadikan 17-12-2005 21:50 384208

Vas
Цитата:

Какие ещё будут предложения?
Убрать command9= и command10=. На форуме неоднократно встречался такой формат:
Код:

[GUIRunOnce]
command1 = "some command"
command2 = "some other command"

но я не знаю откуда у него ноги растут, т.к. в документации я ничего подобного не нашел.

Vadikan 20-12-2005 03:16 384900

Vas
Должен признать, что судя по изрядному количеству статей MS, нумерация команд в GuiRunOnce допустима. Однако, во всех примерах она начинается с command0, потом command1 и т.д. По идее, ваша сбитая нумерация не должна влиять ни на что, но можно все-таки попробовать начать с 0.

Добавлено: забавно, что в ref.chm говорится об одновременном выполнении команд
Цитата:

Commands called in the [GuiRunOnce] section process synchronously. Each application runs in the order listed in this section, and each command must finish before you run the next command
A например,
в статье Configuring [GuiRunOnce] to Perform Tasks говорится, что команды выполняются последовательно.
Цитата:

The commands, programs, scripts, and batch files run synchronously, which means each command, program, script, or batch file runs to completion before the next one starts running. This lets you control the order in which tasks are performed.
В обоих случаях используется слово synchronously, которое означает "одновременно", однако дальнейшая трактовка различается.

Короче говоря, в ref.chm дана некорректная формулировка. Команды выполняются последовательно.

Vas 20-12-2005 23:41 385238

Vadikan
Обрабатывается мой install.cmd, это я определил введением в него текста
Цитата:

@echo off
echo ###
echo ### Installing Programs
echo ### Please wait...
echo ###

call setup1.cmd
call setup2.cmd
вот только не запускаются setup1.cmd, setup2.cmd ...
это довольно странно так как setup1.cmd вида:
Цитата:

start/wait setup.exe /qb TRANSFORMS="vas.MST"
copy "%ALLUSERSPROFILE%\ѓ«*ў*®Ґ ¬Ґ*о\Џа®Ја*¬¬л\Microsoft Office\Microsoft Office Word 2003.lnk" "%ALLUSERSPROFILE%\ђ*Ў®зЁ© бв®«\"
copy "%ALLUSERSPROFILE%\ѓ«*ў*®Ґ ¬Ґ*о\Џа®Ја*¬¬л\Microsoft Office\Microsoft Office Excel 2003.lnk" "%ALLUSERSPROFILE%\ђ*Ў®зЁ© бв®«\"
copy "%ALLUSERSPROFILE%\ѓ«*ў*®Ґ ¬Ґ*о\Џа®Ја*¬¬л\Microsoft Office\Microsoft Office Word 2003.lnk" "%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch\"
copy "%ALLUSERSPROFILE%\ѓ«*ў*®Ґ ¬Ґ*о\Џа®Ја*¬¬л\Microsoft Office\Microsoft Office Excel 2003.lnk" "%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch\"
При запуске этого же install.cmd после установки винди с C:\Install (копитуется всё правильно в корень диска) вручную без проблем отрабатывается весь сценарий установки софта.
Нумерацию command изменял, результат не изменился.
HELP. Где я накосячил?

Vadikan 21-12-2005 01:42 385264

Vas
Я когда свой пост исправлял хотел написать, что возможно в файле ошибки и он поэтому не [полностью] отрабатывает, а вы не видите что происходит, т.к. запуск файла осуществляется еще до загрузки оболочки, и предложить сделать тестовый вывод в текстовый файл из первой строки типа echo testing file >> "%systemdrive%\test.txt". Забыл :) Но вижу, что вы уже разобрались. Осталось выяснить почему не вызываются остальные cmd файлы.

Изложите ваш расклад директорий, т.к.
Код:

call setup1.cmd
подразумевает, что seup.cmd и install.cmd находятся в одной директории. В противном случае нужно указывать путь. Кстати, первоначально было
Код:

cd "Office 2003 Pro"
call setup.cmd

Опять же, в папка "Office 2003 pro" должна быть в %systemdrive%\install если install.cmd оттуда запускается.

Добавлено:
Цитата:

При запуске этого же install.cmd после установки винди с C:\Install (копитуется всё правильно в корень диска) вручную без проблем отрабатывается весь сценарий установки софта.
Вот этого я сразу не заметил. Что-то я не понимаю. Во время установки файл запускается, но не до конца или неверно отрабтатывает. А после установки вручную все работает. Гм... Ну попробуйте убрать @echo off и поставить в начале паузу секунд на 60 (чтобы оболочка загрузилась) и после каждой команды секунд на 15, чтобы увидеть какие ошибки выдаются. Паузу можно поставить так:
Код:

ping -n delay -w 1 127.0.0.1 > nul
Вместо delay подставьте желаемое время в секундах + 1. Или ищите sleep.exe


P.S. Надеюсь, вы не проводите установку заново каждый раз, а импортируете команду на запуск install.cmd в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce, после чего завершаете сеанс и входите снова ;)

Vas 21-12-2005 02:46 385270

Vadikan
Цитата:

подразумевает, что seup.cmd и install.cmd находятся в одной директории.
Извините, я не уточнил это изменение в посте.
В последней редакции(путём изменения инсталях софта) именно так и есть, тоесть я грубо скинул все файлы из папок в одну папку Install.
На счастье одинаковых названий в файлах не было, при ручном запуске install.cmd весь софт устанавливается, регистрируется и русифицируется.
Цитата:

Опять же, в папка "Office 2003 pro" должна быть в %systemdrive%\install если install.cmd оттуда запускается.
Это уже старый вариант, хотя мне он больше нравится так как есть видимая и понятная структура устанавливаемого софта и её легче изменять(добавлять или удалять)

Vas 22-12-2005 23:09 385967

Vadikan
Цитата:

Надеюсь, вы не проводите установку заново каждый раз
Провожу, в виртуалке каждая установка проходит от начала до "рабочего стола".

Кажись причина не полной отработки файла install.cmd в том что вызов файлов был не из C:\Install\ а из C:\Document and Settings\Администратор\ ...
Тоесть при введени задержки видно что ошибка : C:\Document and Settings\Администрато\call setup1.cmd
"setup1.cmd" не является внутенней или внешней командой, исполняемой программой или пакетным файлом.
И так повторяется для каждого из setup1-10...
Почему так происходит?
ведь теперь я даже прописал так:
Цитата:

[GUIRunOnce]
command1 = "%SystemDrive%\D\BTS_DPs_finish.cmd"
command2 = "C:\Install\install.cmd"
Тоесть install.cmd запускается из C:\Install
На всякий случай приведу install.cmd
Цитата:

echo ###
echo ### Installing Programs
echo ### Please wait...
ping -n 30 -w 1 127.0.0.1 > nul
call setup1.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup2.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup3.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup4.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup5.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup6.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup7.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup8.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup10.cmd
ping -n 30 -w 1 127.0.0.1 > nul
call setup9.cmd

Vadikan 23-12-2005 00:40 385990

Мне кажется, что вам надо все немного упростить и вызывать установку всех приложений из одного файла install.cmd, а не деражать кучу пронумерованных и непонятно к чему относящихся файлов. Зачем усложнять? Чтобы вызвать установку install.cmd, находящегося в C:\Install проделайте следующее.
Запустите следующий пакетный файл:
Код:

@echo off
set key=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce

REG ADD %KEY% /V command0 /D "%systemdrive%\install\install.cmd" /f

exit

Завершите сеанс и войдите в систему снова. Так можно тестировать не проводя установку заново. Если все сработает, то у вас должно быть при установке
Код:

[GuiRunOnce]
"%systemdrive%\install\install.cmd"


Vas 24-12-2005 01:22 386358

Vadikan
Спасибо за подсказку как тестировать установку софта без установки винды(Хорошо бы отметить это в FAQ т. к. довольно большая экономия времени)
Имеется C:\Install и несколько папок с инсталяхами. В C:\Install находится install.cmd вида
Цитата:

cd "Office 2003 Pro"
call setup.cmd
cd ..
cd "K-Lite v2.45f"
call setup.cmd
cd ..
cd "Nero v6.6.0.12"
call setup.cmd
cd ..
cd "PowerDVD v6.0"
call setup.cmd
cd ..
cd "Winamp v5.08d"
call setup.cmd
cd ..
cd "WinRAR v3.42"
call setup.cmd
cd ..
cd "FlashGet v1.65"
call setup.cmd
cd ..
cd "Total Commander v6.52"
call setup.cmd
cd ..
cd "Tweak"
call setup.cmd
cd ..
cd "SP3"
call setup.cmd
При запуске install.cmd(он запускается указанным выше вашим способом: тоесть "запуск пакетного файла, логофф/логон в виртуалке). Получаю
Цитата:

C:\Document and Settings\Администратор\cd "Office 2003 Pro"
Системе не удаётся найти указанный путь
C:\Document and Settings\Администратор\call install.cmd
"install.cmd" не является внутенней или внешней командой, исполняемой программой или пакетным файлом.
Почему так происходит? Подменяется %systemroot% на C:\Document and Settings\Администратор\
Ещё раз повторюсь что при запуске этого же install.cmd ручками скрипт полностью и без ошибок отрабатывается.

Vadikan 24-12-2005 08:16 386401

Vas
Ну раз у вас такая система вызова файлов, то могу предложить такой вариант install.cmd
Код:

@echo off
:: LD - launch dir - директория из которой запускается install.cmd
SET LD=%~dp0
:: R - файл setup.cmd, раз у них у всех имена одинаковые
set R=setup.cmd
CD "%LD%\Office 2003 Pro"
call %R%
CD "%LD%\K-Lite v2.45f"
call %R%
: и так далее
exit

Не вижу причин, по которым бы это не работало. Как я уже сказал ранее, идея с одноименными файлами setup.cmd не очень удачна, т.к. их надо держать в разных папках.


Время: 20:04.

Время: 20:04.
© OSzone.net 2001-