Показать полную графическую версию : [решено] Запуск установки .Net Frameowrk на этапе RunOnceEx
Здравствуйте. Сделал аддон - DotNetRun (http://forum.oszone.net/post-1905165-1636.html). Но мне сообщили то что он не совершенен - пост 1649 (http://forum.oszone.net/post-1910352-1649.html). Я исправил, но что то не так, из рабочей системы всё работает на ура, а когда ставлю систему выдаёт ошибку о том что такого файла не существует.
Вот мой файлик 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
Помогите мне форумчане, кто чем сможет.
COPY "DOTNET.EXE" "%SYSTEMROOT%\DOTNET.EXE" »
А это, как это ? DOTNET.EXE в DOTNET.EXE ?
Сlassic, да, сам не пойму откуда это взял, но работает. Не думаю что из за этого такая проблема.
Не думаю что из за этого такая проблема. »
А что мешает изменить и проверить ?
А это, как это ? DOTNET.EXE в DOTNET.EXE ? »
А что вас смущает в этой команде? Происходит копирование файла в другую директорию с указанием нового (в данном случае старого) имени файла. Вполне допустимая команда. Ничего криминального в этом нет, причина не в этом.
Aquila
Попробуйте копировать не в корень %SYSTEMROOT%, а в подкаталог, соответственно прописать установку из этого подкаталога.
из рабочей системы всё работает на ура, а когда ставлю систему выдаёт ошибку о том что такого файла не существует. »
А разве RunOnceEx не рабочая система? Я не совсем понял, что значит, работает на рабочей системе и что выдает о не нахождении файла. Если запустить RunOnceEx.cmd вручную, DOTNET.EXE появляется в %SYSTEMROOT%? Если перезагрузить компьютер, установка из RunOnceEx начинается?
Попробуйте копировать не в корень %SYSTEMROOT%, а в подкаталог, соответственно прописать установку из этого подкаталога. »
Что мне это даст?
Я не совсем понял, что значит, работает на рабочей системе »
На рабочей, значит на уже установленной, у которой произведено больше 2 загрузок.
что выдает о не нахождении файла »
Обычную команду. Процитировать не могу: данный файл не найден, ищите в поисковике...
Если запустить RunOnceEx.cmd вручную, DOTNET.EXE появляется в %SYSTEMROOT%? »
да
Если перезагрузить компьютер, установка из 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, а напрямую в реестр через батник, аддон всё же.
на этапе Т13 не копируется DOTNET.EXE »
Да, задача из задач, может обратиться напрямую к cmd.exe?
cmd.exe /C COPY "DOTNET.EXE" "%SYSTEMROOT%\"
Petya V4sechkin
19-05-2012, 16:30
задача из задач
Ну и?
Уберите в батнике @echo off и перед EXIT пропишите PAUSE, на этапе Т13 в консоли будет видно, как отработали команды, все ли прошло нормально, например, был ли скопирован DOTNET.EXE
COPY "DOTNET.EXE" "%SYSTEMROOT%\DOTNET.EXE"
А так?
COPY /Y "%~dp0DOTNET.EXE" %SYSTEMROOT%\
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 Тема закрыта.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.