Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Нужно экспортировать в AutoIt (http://forum.oszone.net/showthread.php?t=316848)

SOFFON 16-07-2016 10:51 2651376

Нужно экспортировать в AutoIt
 
Всем привет. Помогите пожалуйста экспортировать в AutoIT этот скрипт

Скрытый текст
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET WW=7164
SET SS=SOURCES
SET IN=NI
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 (
SET PW=%%I:\!WW!
SET PS=%%I:\!WW!\!SS!
DIR /D !PS!\INSTALL.WIM&&SET IN=!PS!\INSTALL.WIM
DIR /D !PS!\INSTALL.EPW&&SET IN=!PS!\INSTALL.EPW
DIR /D !PS!\INSTALL.SWM&&SET IN=!PS!\INSTALL.SWM
IF !IN! NEQ NI GOTO :INST
)
IF %IN% EQU NI (
ECHO ERROR - COULD NOT FIND INSTALL.WIM(EPW,SWM) IN %WW%\%SS% FOLDER!
PAUSE
PAUSE
GOTO :RBT
)
:INST
IF EXIST %PS%\AUTOUNATTEND.XML SET UN=/unattend:%PS%\AUTOUNATTEND.XML
IF EXIST %PS%\$OEM$\NUL SET OEM=/m:%PS%\$OEM$
SET ST=%PW%\SETUP.EXE
IF NOT EXIST %ST% SET ST=X:\SETUP.EXE
IF NOT EXIST %ST% GOTO :BAD
IF EXIST %PW%\SETUP.EXE (%ST%) ELSE %ST% /installfrom:%IN% %OEM% %UN%
GOTO :RBT
:BAD
DIR %PW%\ /B
ECHO Cannot find %ST% !
ECHO.
:RBT
EXIT
@ECHO Press a key to reboot now...
PAUSE
WPEUTIL REBOOT
PAUSE

Все должно быть в тихом режиме. Заранее спасибо.

Creat0R 23-07-2016 23:49 2653588

Не проверял, конвертировал по памяти:

Код:

$WW = '7164'
$SS = 'SOURCES'
$IN = 'NI'

$aDrives = StringSplit('CDEFGHIJKLMNOPQRSTUVWXYZ', '')

For $i = 1 To $aDrives[0]
    $PW = $aDrives[$i] & ':\' & $WW
    $PS = $aDrives[$i] & ':\' & $WW & '\' & $SS

    If FileExists($PS & '\INSTALL.WIM') Then $IN = $PS & '\INSTALL.WIM'
    If FileExists($PS & '\INSTALL.EPW') Then $IN = $PS & '\INSTALL.EPW'
    If FileExists($PS & '\INSTALL.SWM') Then $IN = $PS & '\INSTALL.SWM'

    If $IN <> 'NI' Then
        INST($PW, $PS)
    EndIf
Next

If $IN = 'NI' Then
    MsgBox(16, 'Error', StringFormat('ERROR - COULD NOT FIND INSTALL.WIM(EPW,SWM) IN %s\%s FOLDER!\n\nPress OK to reboot now...', $WW, $SS))
    Shutdown(6)
    Exit
EndIf

Func INST($PW, $PS)
    Local $UN, $OEM
    Local $ST = $PW & '\SETUP.EXE'

    If FileExists($PS & '\AUTOUNATTEND.XML') Then $UN = '/unattend:' & $PS & '\AUTOUNATTEND.XML'
    If FileExists($PS & '\$OEM$\NUL') Then $OEM = '/m:' & $PS & '\$OEM$'

    If Not FileExists($ST) Then
        $ST = 'X:\SETUP.EXE'
        MsgBox(48, 'Attention', StringFormat('Cannot find %s!', $ST))
    EndIf

    If FileExists($PW & '\SETUP.EXE') Then
        Run($ST)
    Else
        Run($ST & StringFormat(' /installfrom:%s %s %s', $IN, $OEM, $UN))
    EndIf

    Shutdown(6)
    Exit
EndFunc


SOFFON 24-07-2016 17:49 2653744

Да, проверил все работает. Единственное я добавил ожидание завершение процесса

$Setup = Run

ProcessWaitClose($Setup)

Иначе уходит в перезагрузку не дождавшись завершения run . Огромное спасибо за помощь.

Creat0R 25-07-2016 05:00 2653817

SOFFON, можно просто использовать RunWait.

IrianaTarm 09-01-2017 00:00 2701918

Помогите. Не могу сообразить как осуществить запуск скрипта AutoIt из другого скрипта AutoIt с параметром под параметром понимается некое значение переменной
И как в запускаемом скрипте распознать этот параметр

oz84 11-01-2017 03:07 2702528

IrianaTarm, как-то так:
Скрытый текст
первый_скрипт.au3:
Код:

#NoTrayIcon

Local $sVar = 'некое значение переменной'

If @Compiled Then
    Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & @ScriptDir &.'\второй_скрипт.au3" "' & $sVar & '"')
Else
    Run('"' & @AutoItExe & '" "' & @ScriptDir &.'\второй_скрипт.au3" "' & $sVar & '"')
EndIf

второй_скрипт.au3:
Код:

#NoTrayIcon

If $CmdLine[0] > 0 Then MsgBox(4096, '', $CmdLine[1])


Подробности в справке: Запуск скриптов >> Параметры командной строки
Но вообще, это неподхрдящая тема :wink:


Время: 22:19.

Время: 22:19.
© OSzone.net 2001-