Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Задание переменной %DiskRoot%

Ответить
Настройки темы
[решено] Задание переменной %DiskRoot%

Аватара для CtrlSoft

Ветеран


Сообщения: 569
Благодарности: 169


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Нужно экспортировать в AutoIt, командный файл следующего содержания:
Код: Выделить весь код
@echo off
FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W Y Z) DO IF EXIST %%i:\sources\install.wim SET diskroot=%%i:
start /wait X:\setup.exe /installfrom:%diskroot%\sources\install.wim /unattend:%diskroot%\boot\xmls\en-us.xml
exit
Все должно быть в скрытом режиме.
За ранее спасибо.

Отправлено: 16:07, 02-02-2011

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
$aDrives = DriveGetDrive("ALL")

For $i = 1 To $aDrives[0]
    If DriveStatus($aDrives[$i]) <> "READY" Then
        ContinueLoop
    EndIf

    If FileExists($aDrives[$i] & ':\sources\install.wim') Then
        RunWait('X:\setup.exe /installfrom:' & $aDrives[$i] & ':\sources\install.wim /unattend:' & $aDrives[$i] & ':\boot\xmls\en-us.xml')
    EndIf
Next

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:46, 02-02-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для CtrlSoft

Ветеран


Сообщения: 569
Благодарности: 169

Профиль | Сайт | Отправить PM | Цитировать


Creat0R, премного благодарен!

-------
Windows 7 AIO x86-x64


Последний раз редактировалось CtrlSoft, 02-02-2011 в 20:29.


Отправлено: 19:07, 02-02-2011 | #3


Аватара для CtrlSoft

Ветеран


Сообщения: 569
Благодарности: 169

Профиль | Сайт | Отправить PM | Цитировать


Creat0R, странно, не работает... (

-------
Windows 7 AIO x86-x64


Отправлено: 10:08, 03-02-2011 | #4


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата CtrlSoft:
не работает »
А так:

Код: Выделить весь код
$aDrives = DriveGetDrive("ALL")

For $i = 1 To $aDrives[0]
    If DriveStatus($aDrives[$i]) <> "READY" Then
        ContinueLoop
    EndIf

    If FileExists($aDrives[$i] & '\sources\install.wim') Then
        RunWait('X:\setup.exe /installfrom:' & $aDrives[$i] & '\sources\install.wim /unattend:' & $aDrives[$i] & '\boot\xmls\en-us.xml')
    EndIf
Next
?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:15, 03-02-2011 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата CtrlSoft:
странно, не работает »
Попробуйте заменить
Код: Выделить весь код
;...
If FileExists($aDrives[$i] & ':\sources\install.wim') Then
;...
;на
;...
If FileExists($aDrives[$i] & '\sources\install.wim') Then
;...
PS
А ответ уже есть.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:21, 03-02-2011 | #6


Аватара для CtrlSoft

Ветеран


Сообщения: 569
Благодарности: 169

Профиль | Сайт | Отправить PM | Цитировать


Creat0R, madmasles, спасибо. Теперь работает.
Но хотел бы заметить,
Код: Выделить весь код
@echo off
FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W Y Z) DO IF EXIST %%i:\sources\install.wim SET diskroot=%%i:
start /wait X:\setup.exe /installfrom:%diskroot%\sources\install.wim /unattend:%diskroot%\boot\xmls\en-us.xml
exit
у меня start /wait а потом exit. Все дело в том что данный скрипт я запускал через winpeshl.ini, и если не добавить start /wait, программа установки запустится, но тут же перезагрузится пк.

В вашем же скрипте нужно наверное отказаться от wait:
PHP код: Выделить весь код

$aDrives DriveGetDrive("ALL")

For 
$i 1 To $aDrives[0]
    If 
DriveStatus($aDrives[$i]) <> "READY" Then
        ContinueLoop
    
EndIf

    If 
FileExists($aDrives[$i] & '\sources\install.wim'Then
        Run
('X:\setup.exe /installfrom:' $aDrives[$i] & '\sources\install.wim /unattend:' $aDrives[$i] & '\boot\xmls\en-us.xml')
    EndIf
Next 

Дело в том что во время тестирования, если я закрывал окно установки Windows, то запускалось повторная установка, но с ошибкой что не найден файл ответов.
Попробую в WinPE...

-------
Windows 7 AIO x86-x64


Отправлено: 11:24, 03-02-2011 | #7


Аватара для CtrlSoft

Ветеран


Сообщения: 569
Благодарности: 169

Профиль | Сайт | Отправить PM | Цитировать


проверил в WinPE. Работает.

setdiskroot.exe:
PHP код: Выделить весь код

$aDrives DriveGetDrive("ALL")

For 
$i 1 To $aDrives[0]
    If 
DriveStatus($aDrives[$i]) <> "READY" Then
        ContinueLoop
    
EndIf

    If 
FileExists($aDrives[$i] & '\sources\install.wim'Then
        Run
('X:\setup.exe /installfrom:' $aDrives[$i] & '\sources\install.wim /unattend:' $aDrives[$i] & '\boot\xmls\en-us.xml')
    EndIf
Next 

winpeshl.ini:
Код: Выделить весь код
[LaunchApp]
AppPath=%SystemRoot%\Scripts\SetDiskRoot.exe

Появился вопрос, что нужно дописать чтобы перед запуском установки, скрипт проверял есть ли требуемый язык в системе а потом запускала установку с нужным языком?

на пример,
1. Создается переменная для привода.
2. Определяется язык
к примеру ищет папку в X:\sources c названием en-US, если найдена - запускается
Код: Выделить весь код
X:\setup /installfrom:%diskroot%\sources\install.wim /unattend:%diskroot%\boot\xmls\en-us.xml
если не найдена - ищет другую папку - ru-RU и запускает команду
Код: Выделить весь код
X:\setup /installfrom:%diskroot%\sources\install.wim /unattend:%diskroot%\boot\xmls\ru-ru.xml
?

спасибо

-------
Windows 7 AIO x86-x64


Отправлено: 13:34, 03-02-2011 | #8


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата CtrlSoft:
скрипт проверял есть ли требуемый язык в системе »
Наверное, можно так попробовать:
Код: Выделить весь код
$aDrives = DriveGetDrive("ALL")

For $i = 1 To $aDrives[0]
    If DriveStatus($aDrives[$i]) <> "READY" Then
        ContinueLoop
    EndIf
    If FileExists($aDrives[$i] & '\WINDOWS\explorer.exe') Then
        MsgBox(0, StringUpper($aDrives[$i]), StringLeft(FileGetVersion($aDrives[$i] & '\WINDOWS\explorer.exe', 'DefaultLangCodepage'), 4))
        ;0419 русский
        ;0409 английский
        ; и т.д.
    EndIf
Next
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:04, 03-02-2011 | #9


Аватара для CtrlSoft

Ветеран


Сообщения: 569
Благодарности: 169

Профиль | Сайт | Отправить PM | Цитировать


потребовалось запустить команду Run с другими параметрами. При этом нужно указать два разных пути, которые требуется определить наличием файлов на диске.
Т.е. переменная №1 - ищем файл в корень диска
переменная №2 - ищем файл из папки в корень диска (\folder\file.wim)

после определения переменных происходит запуск:
%переменная№1%\folder0\folder1\folder2\setup.exe /installfrom:%переменная№2%\folder0\file.wim /unattend:%переменная№1%\folder0\folder1\folder2\file.xml

-------
Windows 7 AIO x86-x64


Последний раз редактировалось CtrlSoft, 02-08-2011 в 23:40.


Отправлено: 23:35, 02-08-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Задание переменной %DiskRoot%

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. NiOl Скриптовые языки администрирования Windows 7 31-01-2019 19:58
задание по информатике DennyD Тест-форум 1 22-12-2010 21:57
C/C++ - Задание внутри Wurka86 Программирование и базы данных 1 25-05-2008 22:18
Задание на Paskal-e Doktor Программирование и базы данных 5 08-01-2003 13:51




 
Переход