程式碼的運作可以定義要執行軟體的數量並且一個接一個依序執行,這裡以安裝Windows 的修正程式為例。語法中 Global $sExecPath[2] 本行定義增加增加執行多少程式,本例為2個,若有多個程式要執行只要增加數字就可以了,本例程式碼是陣例的應用。
以下程式碼定義要執行的程式名稱及參數,要注意的是要佈署的程式和AutoIt程式要放在一起,若放在不同的路徑要定義清楚否則就會失敗。因為要透過自動化佈署所以參數要定義為自動且靜默( Silent install )
以下是要安裝的程式碼:
$sExecPath[0] = @ScriptDir & "wusa.exe X86-all-windows6.1-kb3170455-x86.msu" &" /log /quiet /norestart"
$sExecPath[1] = @ScriptDir & "wusa.exe Windows6.1-KB3192403-x86.msu" &" /log /quiet /promptrestart"
範例:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.14.2
Author: 奔騰兔開發誌
Date : 2017/06/16
Script Function: Script Demo
Description :陣列的簡單運用於軟體佈署
Notes:http://pentiumto.blogspot.tw/
#ce ----------------------------------------------------------------------------
#include
Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
Opt("TrayIconHide", 1) ;0=show, 1=hide tray icon
Dim $sNowtime=@YEAR &"-"& @MON &"-"& @MDAY &" "& @HOUR &":"& @MIN
;指定要執行的程式數量,並提供執行路徑
Global $sExecPath[2]
$sExecPath[0] = @ScriptDir & "wusa.exe X86-all-windows6.1-kb3170455-x86.msu" &" /log /quiet /norestart"
$sExecPath[1] = @ScriptDir & "wusa.exe Windows6.1-KB3192403-x86.msu" &" /log /quiet /promptrestart"
ExecuteMe() ;啟動程式
Func ExecuteMe()
For $element In $sExecPath
Sleep(2000)
ConsoleWrite($sNowtime & " [Info] " & @ScriptLineNumber & " " &$element&@CRLF)
Local $iPID = RunWait(@ComSpec & " /c " & $element, @ScriptDir, @SW_MINIMIZE )
ProcessWaitClose($iPID)
ConsoleWrite($sNowtime & " [Info] " & @ScriptLineNumber & " " & $iPID&@CRLF)
Next
EndFunc
沒有留言:
張貼留言