Показать полную графическую версию : [решено] Ошибка при запуске файла с CDROM.
FreshMen85
13-01-2010, 18:38
У меня возникла проблема с командой:
for %%i in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do if exist %%i:\WIN51IP @set CDROM=%%i:
после выполнения возникают несколько ошибок и только после их закрытия продолжается установка программ с CDROM. Как победить данное обстоятельство, подскажите пожалуйста, как-то раньше с год назад с этой командой проблем не было, а счас возникли. Запуск файла происходит после полной загрузки OS.
FreshMen85, могу предположить что Вы как и я счастливый обладатель картрийдера. Если так то у вас два пути:
1 - запишите алфавит в обратном порядке
2 - читаем это (http://forum.oszone.net/thread-133300.html)
FreshMen85
13-01-2010, 19:07
Pozia, ты оказался прав, убрал я буквы картридера из команды и батник запустился нормально. Буду делать значит через AutoIT, как у тебя в теме написанно. Правда вот ещё один вопрос там код скрипта приведен полный или нет.
Правда вот ещё один вопрос там код скрипта приведен полный или нет. »
В теме написано Решено :)
Граждане обладатели кардридеров, к вам вопрос!
скрипт в шапке для определения буквы оптического носителя мне не нужен, т.к. использую [addon] Fake-Setup Advanced (http://forum.oszone.net/thread-119984.html) в котором есть 5. Преобразование пути из параметра sourcepath из файла $winnt$.inf и установка глобальных переменных окружения SrcDosPath и SrcDosDrive, содержащих путь к дистрибутиву устанавливаемой ОС и букву дистрибутивного диска с двоеточием соответственно, для последующего использования программами и скриптами из PreSetup.cmd, PstSetup.cmd.
Поддерживаются пути к дистрибутиву на CD-диске, RIS-сервере, жестком диске. » используется это в конструкциях типа
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "Установка Дополнений" /f
REG ADD %KEY%\150 /VE /D "FastStone Image Viewer" /f
REG ADD %KEY%\150 /V 1 /D "%SrcDosPath%\VALUEADD\FSIV4.exe /VERYSILENT" /fдля установки приложений при первом входе в систему через RunOnceEx
собственно вопрос.
не замечены ли на компах с кардридерами ситуации, когда при инсталяции оптический привод имеет одну букву, а после перевой перезагрузки эта буква присваивается кардридером а буква DVD/CD "уезжает" в конец списка?
то есть ситуация:
в момент инсталяции
C: - винт
D: - DVD
после первой перезагрузки
C: - винт
D: E: F: кардридер
G: - DVD
бывает?
или же кардридер занимает буквы после DVD / CD ?
FreshMen85
14-01-2010, 13:13
Amigos, постараюсь на это обратить внимание при следующих испытаниях. Хотя если есть в этом проблема, не обратить на неё внимания врятли получится.
не замечены ли на компах с кардридерами ситуации, когда при инсталяции оптический привод имеет одну букву, а после перевой перезагрузки эта буква присваивается кардридером а буква DVD/CD "уезжает" в конец списка? »
неоднократно. Но наверняка утверждать что виноват картрийдер не берусь. У меня помимо него есть основной винт SATA и дополнительный IDE, в биосе включен параметр AHCI, а это букву может сбивать тоже. Пока нет времени вычислять кто виноват.
FreshMen85
16-01-2010, 16:54
Вобщем решил я свою проблему полностью. Для тех кто понял о чем речь, далее идут решения:
1. Используем [addon] Fake-Setup Advanced (ссылка чуть ниже в этой теме). С помощью данного аддона мы назначаем переменную для CD (DVD) с виндой.
2. Используем вот такой вот скрипт для запуска файла с CD/DVD диска. Путь для замены выделен жирным шрифтом.
#NOtrayIcon
#include <GuiConstantsEx.au3>
#include <ComboConstants.au3>
;
$sBSPI_Drives = ""
$sSel_Drive = ""
$sFirst_Drive = ""
$aDrives = DriveGetDrive("All")
;=============================================================================
For $i = 1 To $aDrives[0]
If DriveStatus($aDrives[$i]) <> "READY" Then ContinueLoop
If FileExists($aDrives[$i] & "\AUTOINSTALL\INSTALL_SOFT.CMD") Then
If $sBSPI_Drives = "" Then $sFirst_Drive = $aDrives[$i]
$sBSPI_Drives &= StringUpper($aDrives[$i]) & "|"
EndIf
Next
$sBSPI_Drives = StringRegExpReplace($sBSPI_Drives, "\|+$", "")
If StringInStr($sBSPI_Drives, "|") Then
$hGUI = GUICreate("Выберите диск запуска WIN_XP", 240, 50)
$Drives_Combo = GUICtrlCreateCombo("", 20, 20, 40, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, $sBSPI_Drives, $sFirst_Drive)
$OK_Button = GUICtrlCreateButton("OK", 80, 19, 60, 25)
$Cancel_Button = GUICtrlCreateButton("Cancel", 160, 19, 60, 25)
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $Cancel_Button
Exit
Case $OK_Button
$sSel_Drive = GUICtrlRead($Drives_Combo)
ExitLoop
EndSwitch
WEnd
ElseIf $sBSPI_Drives <> "" Then
$sSel_Drive = $sBSPI_Drives
EndIf
If $sSel_Drive <> "" Then RunWait($sSel_Drive & "\AUTOINSTALL\INSTALL_SOFT.CMD")
;=============================================================================
P.S. Автор скрипта amel27 (http://forum.oszone.net/member.php?userid=38813), пищу для размышлений дал Pozia (http://forum.oszone.net/member.php?userid=107772).
FreshMen85, я не понял какую роль в этом играет скрипт если переменная уже есть от фак???
FreshMen85
16-01-2010, 18:07
Fake-Setup Advanced есть возможность запуска файла при первой загрузки винды, но мне же надо запускать файл после того как винда загрузится.
есть возможность запуска файла при первой загрузки винды, но мне же надо запускать файл после того как винда загрузится. »
Основные функции Fake-установщика:
1. Запуск файлов-сценариев:
- PreSetup.cmd на Т-40 графического этапа установки для выполнения действий, которые необходимо выполнить перед началом установки ОС, такие, как копирование на жесткий диск и распаковка пользовательских пакетов драйверов, а также запуск разнообразных утилит для предварительной настройки установщика ОС.
- PstSetup.cmd на Т-0 графического этапа установки для выполнения действий, которые необходимо выполнить после окончания графического этапа установки ОС. »
Fake-Setup Advanced есть возможность запуска файла при первой загрузки винды »
я немножко шаманю тут. я сделал аддон который копирует данный скрипт в корень системного диска на т13 и вешает в реестр запуск скрипта или при первом логоне или после загрузки рабочего стола, как угодно. Соответственно дальше скрипт находит CD ром и делает что нужно, а потом из реестра запись удаляет батник который доводит настройку системы до конца
FreshMen85
17-01-2010, 10:09
Pozia, мне уже не надо, я кстати вместо скрипта написал батник с запуском нужного мне файла с CD и положил в автозагрузку. Потому что файлы из автозагрузки запускаются в последнею очередь, вобщем проверил в полевых условиях. Так что мне получается аддон Fake-Setup Advanced полностью подходит.
To Amigos я в курсе того что умеет аддон, и прочёл про "PstSetup.cmd на Т-0 графического этапа установки для выполнения действий, которые необходимо выполнить после окончания графического этапа установки ОС.", иначе бы откуда я по Вашему узнал о используемых переменных для запуска файлов с CD.
Теперь чуть поподробнее о запуске файла на T-0, мне данный метод не подошел, так как не происходит запуск оболочки виндовс, тоесть не соблюдается первое моё условие "полная загрузка виндовс". Другое дело зачем мне это надо, но я думаю Вам это не интересно, так что это пропустим.
Далее в момент запуска нужного мне файла, вместо кирилицы в батнике образовались не понятные символы и работа батника была закончена как только произошел запуск первого файла. Ну скажем на счет кракозябр может быть надо было попробывать кодировку батника не 866 а оставить ANSI, тут вобщем нужно было читать документацию к аддону более детально, да и в добавок нужно было что-то шаманить с не работоспасобностью батника, поэтому я пошел более легкий путем и сделал как мне нужно было, слава богу переменная работает и работает нормально.
P.S. Теперь кое что о наблюдениях при установки, я в конфиге аддона Fake-Setup Advanced не включал запуск батника на T-40, но при полностью автоматической установке произошёл сбой, вылезло сообщение о предложении указать диск с файлами виндовс, данную неприятность я победил путем то что открыл лоток привода и тут же закрыл, установщик быстро нашел нужные файлы и продолжил установку. Вобщем проверил начальный этап установки на другом приводе в своей системе, установка произошла нормально и далее как бы я не извращался, установка происходила нормально. На аддон Fake-Setup Advanced не грешу потому что ошибка слишком не устойчивая чтобы быть из-за аддона. Сижу сейчас дома и тестирую различные ситуации, в планах проверить запуск винды без установки каких-либо аддонов (на всякий случай), но есть одно предположении, я до этого использовал программу Acronis для востановления, может что-то из-за неё происходит. На виртуальной машине конечно всё устанавливается нормально. Кстати только что узнал что если в файле BOOTEX.LOG на флешке есть сообщения об ошибке установка виндовс не запускается ссылаясь на вирусы в mft области.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.