Войти

Показать полную графическую версию : [решено] Нужно экспортировать в AutoIt


SOFFON
16-07-2016, 10:51
Всем привет. Помогите пожалуйста экспортировать в 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
Не проверял, конвертировал по памяти:

$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
Да, проверил все работает. Единственное я добавил ожидание завершение процесса

$Setup = Run

ProcessWaitClose($Setup)

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

Creat0R
25-07-2016, 05:00
SOFFON, можно просто использовать RunWait.

IrianaTarm
09-01-2017, 00:00
Помогите. Не могу сообразить как осуществить запуск скрипта AutoIt из другого скрипта AutoIt с параметром под параметром понимается некое значение переменной
И как в запускаемом скрипте распознать этот параметр

oz84
11-01-2017, 03:07
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])
Подробности в справке: Запуск скриптов >> Параметры командной строки (https://autoit-script.ru/autoit3_docs/intro/running.htm#CommandLine)
Но вообще, это неподхрдящая тема :wink:




© OSzone.net 2001-2012