Показать полную графическую версию : Не срабатывают пакетные файлы при запуске из [GuiRunOnce]
Помогите разобраться в причине незапуска 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 то всё поисходит по плану, все програмки устанавливаются и регистрируются.
Что я делаю не так?
Vas
Я бы убрал & из имени папки. А вообще, сама она копируется на HDD во время установки?
А вообще, сама она копируется на HDD во время установки?
Конечно копируется, иначе вести речь о невозможности запуска было бы бессмыслено.
И ещё один вопрос: инсталяция офиса2003 копируется на HDD с ошибками, тоесть при запуске инсталяхи офиса с HDD получаю ошибки о повреждении некоторых файлов, запуск той же инсталяхи с CD(откуда собственно и копировалась инсталяха на HDD) происходит гладко и без ошибок. Причём эта проблемма только с инсталяхой оффиса, все остальные приложения устанавливаются без ошибок...
То же самое при запуске офиса с HDD в виртуалке.
Похоже как-бы на плохую память(распаковка архива большого обьёма)?
Vadikan
Я бы убрал & из имени папки.
Пробовал, к сожалению это не помогло.
Какие ещё будут предложения?
Vas
Какие ещё будут предложения?Убрать command9= и command10=. На форуме неоднократно встречался такой формат:
[GUIRunOnce]
command1 = "some command"
command2 = "some other command"но я не знаю откуда у него ноги растут, т.к. в документации я ничего подобного не нашел.
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 commandA например,
в статье Configuring [GuiRunOnce] to Perform Tasks (http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/DepKit/62649611-a6f9-4757-bf41-194e95a98964.mspx) говорится, что команды выполняются последовательно. 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 дана некорректная формулировка. Команды выполняются последовательно.
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. Где я накосячил?
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, после чего завершаете сеанс и входите снова ;)
Vadikan
подразумевает, что seup.cmd и install.cmd находятся в одной директории.
Извините, я не уточнил это изменение в посте.
В последней редакции(путём изменения инсталях софта) именно так и есть, тоесть я грубо скинул все файлы из папок в одну папку Install.
На счастье одинаковых названий в файлах не было, при ручном запуске install.cmd весь софт устанавливается, регистрируется и русифицируется.
Опять же, в папка "Office 2003 pro" должна быть в %systemdrive%\install если install.cmd оттуда запускается.
Это уже старый вариант, хотя мне он больше нравится так как есть видимая и понятная структура устанавливаемого софта и её легче изменять(добавлять или удалять)
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
Мне кажется, что вам надо все немного упростить и вызывать установку всех приложений из одного файла 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"
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 ручками скрипт полностью и без ошибок отрабатывается.
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 не очень удачна, т.к. их надо держать в разных папках.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.