Запуск установки .Net Frameowrk на этапе RunOnceEx
Здравствуйте. Сделал аддон - DotNetRun. Но мне сообщили то что он не совершенен - пост 1649. Я исправил, но что то не так, из рабочей системы всё работает на ура, а когда ставлю систему выдаёт ошибку о том что такого файла не существует.
Вот мой файлик cmd:
читать дальше »
@echo off
COPY "DOTNET.EXE" "%SYSTEMROOT%\DOTNET.EXE"
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100
REG ADD %KEY% /V TITLE /D "Пожалуйста, подождите..." /f
REG ADD %KEY%\%i% /VE /D "Microsoft .NET Framework" /f
REG ADD %KEY%\%i% /V 1 /D "%SYSTEMROOT%\DOTNET.EXE" /f
REG ADD %KEY%\%i% /V 2 /D "cmd.exe /C DEL /F /Q %SYSTEMROOT%\DOTNET.EXE" /f
SET /A i+=1
EXIT
Помогите мне форумчане, кто чем сможет.
|
Цитата:
Цитата Aquila
COPY "DOTNET.EXE" "%SYSTEMROOT%\DOTNET.EXE" »
|
А это, как это ? DOTNET.EXE в DOTNET.EXE ?
|
Сlassic, да, сам не пойму откуда это взял, но работает. Не думаю что из за этого такая проблема.
|
Цитата:
Цитата Aquila
Не думаю что из за этого такая проблема. »
|
А что мешает изменить и проверить ?
|
Цитата:
Цитата Сlassic
А это, как это ? DOTNET.EXE в DOTNET.EXE ? »
|
А что вас смущает в этой команде? Происходит копирование файла в другую директорию с указанием нового (в данном случае старого) имени файла. Вполне допустимая команда. Ничего криминального в этом нет, причина не в этом.
Aquila
Попробуйте копировать не в корень %SYSTEMROOT%, а в подкаталог, соответственно прописать установку из этого подкаталога.
Цитата:
Цитата Aquila
из рабочей системы всё работает на ура, а когда ставлю систему выдаёт ошибку о том что такого файла не существует. »
|
А разве RunOnceEx не рабочая система? Я не совсем понял, что значит, работает на рабочей системе и что выдает о не нахождении файла. Если запустить RunOnceEx.cmd вручную, DOTNET.EXE появляется в %SYSTEMROOT%? Если перезагрузить компьютер, установка из RunOnceEx начинается?
|
Цитата:
Цитата boss911
Попробуйте копировать не в корень %SYSTEMROOT%, а в подкаталог, соответственно прописать установку из этого подкаталога. »
|
Что мне это даст?
Цитата:
Цитата boss911
Я не совсем понял, что значит, работает на рабочей системе »
|
На рабочей, значит на уже установленной, у которой произведено больше 2 загрузок.
Цитата:
Цитата boss911
что выдает о не нахождении файла »
|
Обычную команду. Процитировать не могу: данный файл не найден, ищите в поисковике...
Цитата:
Цитата boss911
Если запустить RunOnceEx.cmd вручную, DOTNET.EXE появляется в %SYSTEMROOT%? »
|
да
Цитата:
Цитата boss911
Если перезагрузить компьютер, установка из RunOnceEx начинается? »
|
Если система "рабочая" то да.
|
На скорую проверил на виртуалке, вместо DOTNET.EXE подложил AIMP.EXE. Установка проходит. RunOnceEx.cmd запускается из cmdlines.txt, все это: AIMP.EXE, RunOnceEx.cmd в папке $OEM$. Содержимое RunOnceEx.cmd
Код:
@echo off
COPY "AIMP_2.61.583.exe" "%SYSTEMROOT%\"
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100
REG ADD %KEY% /V TITLE /D "Пожалуйста, подождите..." /f
REG ADD %KEY%\%i% /VE /D "Microsoft .NET Framework" /f
REG ADD %KEY%\%i% /V 1 /D "%SYSTEMROOT%\AIMP_2.61.583.exe" /f
REG ADD %KEY%\%i% /V 2 /D "cmd.exe /C DEL /F /Q %SYSTEMROOT%\AIMP_2.61.583.exe" /f
SET /A i+=1
EXIT
|
Aquila
Этап RunOnceEx на только что свежо установленной ОС уже считается рабочей ОС, второй или последующие ее запуски не делает ее "живее". А вот запуск батника происходит не на “живой” ОС, а установка DOTNET.EXE будет происходить на “живой”.
Запуск вручную батника на рабочей ОС доказывает, что все нормально, судя из ваших слов, посему можно предположить, что на этапе Т13 не копируется DOTNET.EXE, раз оно ругается на отсутствия файла. Уберите в батнике @echo off и перед EXIT пропишите PAUSE, на этапе Т13 в консоли будет видно, как отработали команды, все ли прошло нормально, например, был ли скопирован DOTNET.EXE.
Я просто в свое время для подобных целей использовал $OEM$\cmdlines.txt.
|
boss911, Сlassic,
Папкой $OEM$ не хочется пользоваться, лучше пропишу так, только не в cmdlines.txt, а напрямую в реестр через батник, аддон всё же.
Цитата:
Цитата boss911
на этапе Т13 не копируется DOTNET.EXE »
|
Да, задача из задач, может обратиться напрямую к cmd.exe?
|
Petya V4sechkin |
19-05-2012 16:30 1918783 |
Цитата:
Цитата Aquila
задача из задач
|
Ну и?
Цитата:
Цитата boss911
Уберите в батнике @echo off и перед EXIT пропишите PAUSE, на этапе Т13 в консоли будет видно, как отработали команды, все ли прошло нормально, например, был ли скопирован DOTNET.EXE
|
Цитата:
Цитата Aquila
COPY "DOTNET.EXE" "%SYSTEMROOT%\DOTNET.EXE"
|
А так?
Код:
COPY /Y "%~dp0DOTNET.EXE" %SYSTEMROOT%\
|
Цитата:
Цитата Petya V4sechkin
Код:
COPY /Y "%~dp0DOTNET.EXE" %SYSTEMROOT%\
»
|
У меня такая идейка как раз и возникла, спасибо, искал что прописать чтобы файл ловился из того же раздела где и файл .cmd.
Щас всё проверю.
|
Большое всем спасибо!
В итоге вот что получилось:
читать дальше »
Код:
@echo off
COPY /Y "%~dp0DOTNET.EXE" %SYSTEMROOT%\
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100
REG ADD %KEY% /V TITLE /D "Пожалуйста, подождите..." /f
REG ADD %KEY%\%i% /VE /D "Microsoft .NET Framework" /f
REG ADD %KEY%\%i% /V 1 /D "%SYSTEMROOT%\DOTNET.EXE" /f
REG ADD %KEY%\%i% /V 2 /D "cmd.exe /C DEL %SYSTEMROOT%\DOTNET.EXE" /f
SET /A i+=1
EXIT
Тема закрыта.
|
Время: 18:51.
© OSzone.net 2001-