Moin.
Ich habe etwas in meinen ganzen Autoit Ordnern gesucht. Gefunden habe ich dabei eine kleine Sache die ich mal 2007 für irgendjemanden gescriptet habe.
Spoiler anzeigen
Code
;===============================================================================
; Download- und Installationsfunktion von mIRC zzgl. Update der Chatgruppe
;===============================================================================
; Variable
Const $A1 = FileReadLine(@ScriptDir & "\parameter.txt", 1) ; SplashTextOn für alle Hinweisfenster
$res = StringMid($A1, 1, 9)
FileClose($A1)
Const $A2 = FileReadLine(@ScriptDir & "\parameter.txt", 2); SplashTextOn Hinweisfenster 1 Inhalt
$res = StringMid($A2, 1, 50)
FileClose($A2)
Const $A3 = FileReadLine(@ScriptDir & "\parameter.txt", 3) ; INetGetAdresse bzw. Downloadadresse
$res = StringMid($A3, 1, 45)
FileClose($A3)
Const $A4 = FileReadLine(@ScriptDir & "\parameter.txt", 4) ; Name der Datei die gedownloadet und installiert werden soll
$res = StringMid($A4, 1, 11)
FileClose($A4)
Const $A5 = FileReadLine(@ScriptDir & "\parameter.txt", 5) ; zu löschende Datei nach erfolgreichem installieren von $A4
$res = StringMid($A5, 1, 12)
FileClose($A5)
Const $B2 = FileReadLine(@ScriptDir & "\parameter.txt", 6) ; SplashTextOn Hinweisfenster 2 Inhalt
$res = StringMid($B2, 1, 25)
FileClose($B2)
Const $B3 = FileReadLine(@ScriptDir & "\parameter.txt", 7) ; Laufwerk wo installiert wird
$res = StringMid($B3, 1, 3)
FileClose($B3)
Const $B4 = FileReadLine(@ScriptDir & "\parameter.txt", 8) ; nach welcher Datei soll nach Installation von $A4 gesucht werden
$res = StringMid($B4, 1, 8)
FileClose($B4)
Const $B5 = FileReadLine(@ScriptDir & "\parameter.txt", 9) ; Error-Meldung, das $B5 nicht gefunden wurde
$res = StringMid($B5, 1, 61)
FileClose($B5)
Const $C1 = FileReadLine(@ScriptDir & "\parameter.txt", 10) ; erste zu kopierende Datei
$res = StringMid($C1, 1, 11)
FileClose($C1)
Const $C2 = FileReadLine(@ScriptDir & "\parameter.txt", 11) ; wohin soll $C1 hin kopiert werden, hier ist gleiche Verzeichnis
$res = StringMid($C2, 1, 4)
FileClose($C2)
Const $C3 = FileReadLine(@ScriptDir & "\parameter.txt", 12) ; zweite zu kopierende Datei
$res = StringMid($C3, 1, 11)
FileClose($C3)
Const $C4 = FileReadLine(@ScriptDir & "\parameter.txt", 13) ; wohin soll $C3 hin kopiert werden, hier ist gleiche Verzeichnis
$res = StringMid($C4, 1, 4)
FileClose($C4)
Const $C5 = FileReadLine(@ScriptDir & "\parameter.txt", 14) ; Dritte zu kopierende Datei und gleichzeitig zweite Installationsdatei
$res = StringMid($C5, 1, 11)
FileClose($C5)
Const $C6 = FileReadLine(@ScriptDir & "\parameter.txt", 15) ; wohin soll $C5 hin kopiert werden, hier ist gleiche Verzeichnis
$res = StringMid($C6, 1, 4)
FileClose($C6)
Const $D1 = FileReadLine(@ScriptDir & "\parameter.txt", 16) ; SplashTextOn Hinweisfenster 3 Inhalt
$res = StringMid($D1, 1, 21)
FileClose($D1)
Const $D2 = FileReadLine(@ScriptDir & "\parameter.txt", 17) ; zu löschende Datei nach erfolgreichem installieren von $C5
$res = StringMid($D2, 1, 10)
FileClose($D2)
Const $E1 = FileReadLine(@ScriptDir & "\parameter.txt", 18) ; Meldung das Instalaltion abgeschlossen ist
$res = StringMid($E1, 1, 26)
FileClose($E1)
Const $E2 = "Erstellt von Alina H.-L. Änderungswünscht an mich."
Const $E3 = 3000 ; Anzeigedauer der Fenster in tauselsten Sekunde hier 3 Sekunden
SplashTextOn($A1, $A2,400,20,-1,-1,1)
Sleep(3000)
SplashOff()
InetGet($A3, @ScriptDir & $A4)
Run(@ScriptDir & $A4)
ProcessWaitClose($A5)
SplashTextOn($A1, $B2,400,20,-1,-1,1)
Sleep($E3)
SplashOff()
$filelist = _FileListToArrayEx($B3,$B4) ;Recursive filelist
If Not IsArray($filelist) Then
If MsgBox(20,"Error",$B5) = 7 Then Exit ;Bei nein wird beenden
Else
$dir = StringLeft($filelist[1],StringInStr($filelist[1],"\",-1,-1))
;3b
FileCopy(@ScriptDir & $C1,$dir&$C2)
FileCopy(@ScriptDir & $C3,$dir&$C4)
FileCopy(@ScriptDir & $C5,$dir&$C6)
EndIf
;===============================================================================
; Löschen der mirclook.exe
;===============================================================================
FileDelete(@ScriptDir & $A4)
;===============================================================================
; Installation des (Update der Chatgruppe)
;===============================================================================
SplashTextOn($A1, $D1,400,20,-1,-1,1)
Sleep($E3)
SplashOff()
Run(@ScriptDir & $C5)
ProcessWaitClose($D2)
;===============================================================================
; Löschen der setup2.exe (Update der Chatgruppe)
;===============================================================================
FileDelete($dir & $C5)
;===============================================================================
; Abschlußmeldung und kleine 10 Sekunden "Info Texte"
;===============================================================================
SplashTextOn($A1, $E1,300,20,-1,-1,1)
Sleep($E3)
SplashOff()
SplashTextOn($A1, $E2,400,20,-1,-1,1)
Sleep(10000)
SplashOff()
;===============================================================================
; SuchArray erstellen ohne oben stehende Variablen
;===============================================================================
Func _FileListToArrayEx($sPath, $sFilter = '*.*', $iFlag = 0, $sExclude = '', $iRecurse = True)
If Not FileExists($sPath) Then Return SetError(1, 1, '')
If $sFilter = -1 Or $sFilter = Default Then $sFilter = '*.*'
If $iFlag = -1 Or $iFlag = Default Then $iFlag = 0
If $sExclude = -1 Or $sExclude = Default Then $sExclude = ''
Local $aBadChar[6] = ['\', '/', ':', '>', '<', '|']
$sFilter = StringRegExpReplace($sFilter, '\s*;\s*', ';')
If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
For $iCC = 0 To 5
If StringInStr($sFilter, $aBadChar[$iCC]) Or _
StringInStr($sExclude, $aBadChar[$iCC]) Then Return SetError(2, 2, '')
Next
If StringStripWS($sFilter, 8) = '' Then Return SetError(2, 2, '')
If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, '')
Local $oFSO = ObjCreate("Scripting.FileSystemObject"), $sTFolder
$sTFolder = $oFSO.GetSpecialFolder (2)
Local $hOutFile = @TempDir & $oFSO.GetTempName
If Not StringInStr($sFilter, ';') Then $sFilter &= ';'
Local $aSplit = StringSplit(StringStripWS($sFilter, 8), ';'), $sRead, $sHoldSplit
For $iCC = 1 To $aSplit[0]
If StringStripWS($aSplit[$iCC], 8) = '' Then ContinueLoop
If StringLeft($aSplit[$iCC], 1) = '.' And UBound(StringSplit($aSplit[$iCC], '.')) - 2 = 1 Then $aSplit[$iCC] = '*' & $aSplit[$iCC]
$sHoldSplit &= '"' & $sPath & $aSplit[$iCC] & '" '
Next
$sHoldSplit = StringTrimRight($sHoldSplit, 1)
If $iRecurse Then
RunWait(@ComSpec & ' /c dir /b /s /a ' & $sHoldSplit & ' > "' & $hOutFile & '"', '', @SW_HIDE)
Else
RunWait(@ComSpec & ' /c dir /b /a ' & $sHoldSplit & ' /o-e /od > "' & $hOutFile & '"', '', @SW_HIDE)
EndIf
$sRead &= FileRead($hOutFile)
If Not FileExists($hOutFile) Then Return SetError(4, 4, '')
FileDelete($hOutFile)
If StringStripWS($sRead, 8) = '' Then SetError(4, 4, '')
Local $aFSplit = StringSplit(StringTrimRight(StringStripCR($sRead), 1), @LF)
Local $sHold
For $iCC = 1 To $aFSplit[0]
If $sExclude And StringLeft($aFSplit[$iCC], _
StringLen(StringReplace($sExclude, '*', ''))) = StringReplace($sExclude, '*', '') Then ContinueLoop
Switch $iFlag
Case 0
If StringLeft($aFSplit[$iCC], StringLen($sPath)) <> $sPath Then
$sHold &= $sPath & $aFSplit[$iCC] & Chr(1)
Else
$sHold &= $aFSplit[$iCC] & Chr(1)
EndIf
Case 1
If StringInStr(FileGetAttrib($sPath & '\' & $aFSplit[$iCC]), 'd') Then ContinueLoop
If StringLeft($aFSplit[$iCC], StringLen($sPath)) <> $sPath Then
$sHold &= $sPath & $aFSplit[$iCC] & Chr(1)
Else
$sHold &= $aFSplit[$iCC] & Chr(1)
EndIf
Case 2
If Not StringInStr(FileGetAttrib($sPath & '\' & $aFSplit[$iCC]), 'd') Then ContinueLoop
If StringLeft($aFSplit[$iCC], StringLen($sPath)) <> $sPath Then
$sHold &= $sPath & $aFSplit[$iCC] & Chr(1)
Else
$sHold &= $aFSplit[$iCC] & Chr(1)
EndIf
EndSwitch
Next
If StringTrimRight($sHold, 1) Then Return StringSplit(StringTrimRight($sHold, 1), Chr(1))
Return SetError(4, 4, '')
EndFunc ;==>_FileListToArrayEx
Alles anzeigen
parameter.txt:
Spoiler anzeigen
Code
EIGENES UPDATE INCLUSIV
Installiere mIRC und danach das gruppenbezogene Update (setup2.exe).
http://www.duborg.dk/download/mirc621.exe
\mirc.exe
mirc.exe
Gleich geht es weiter ...
C:\
mirc.ini
mirc.ini wurde nicht gefunden. Installation wird abgebrochen.
\meine1.txt
\*.*
\meine2.txt
\*.*
\setup2.exe
\*.*
Installiere das gruppenbezogene Update.
setup2.exe
Das Setup war erfolgreich.
Alles anzeigen
Ob ich das heute auch noch so scripten würde? Ich weiß noch das ich damals lange dafür gebraucht habe. Aber es war damals DIE Herausforderung.
Habe nie mIRC oder der gleicher selber genutzt, weil ich mich nie informiert habe, was das eigentlich GENAU ist.
Habe es später mit den Variablen so gemacht, das ich sie direkt ins Script geschrieben habe. Hab dann so aus:
Spoiler anzeigen
Code
; Variable
Const $A1 = "EIGENES UPDATE INCLUSIV" ; SplashTextOn für alle Hinweisfenster
Const $A2 = "Installiere mIRC und danach das gruppenbezogene Update (setup2.exe)." ; SplashTextOn Hinweisfenster 1 Inhalt
Const $A3 = "http://www.duborg.dk/download/mirc621.exe" ; INetGetAdresse bzw. Downloadadresse
Const $A4 = "\mirclook.exe" ; Name der Datei die gedownloadet und installiert werden soll
Const $A5 = "mirclook.exe" ; zu löschende Datei nach erfolgreichem installieren von $A4
Const $B2 = "Gleich geht es weiter ..." ; SplashTextOn Hinweisfenster 2 Inhalt
Const $B3 = "C:\" ; Laufwerk wo installiert wird
Const $B4 = "mirc.ini" ; nach welcher Datei soll nach Installation von $A4 gesucht werden
Const $B5 = "mirc.ini" ;wurde nicht gefunden, trozdem fortfahren?" ; Error-Meldung, das $B5 nicht gefunden wurde
Const $C1 = "\meine1.txt" ; erste zu kopierende Datei
Const $C2 = "\*.*" ; wohin soll $C1 hin kopiert werden, hier ist gleiche Verzeichnis
Const $C3 = "\meine2.txt" ; zweite zu kopierende Datei
Const $C4 = "\*.*" ; wohin soll $C1 hin kopiert werden, hier ist gleiche Verzeichnis
Const $C5 = "\setup2.exe" ; Dritte zu kopierende Datei und gleichzeitig zweite Installationsdatei
Const $C6 = "\*.*" ; wohin soll $C1 hin kopiert werden, hier ist gleiche Verzeichnis
Const $D1 = "Installiere das gruppenbezogene Update." ; SplashTextOn Hinweisfenster 3 Inhalt
Const $D2 = "setup2.exe" ; zu löschende Datei nach erfolgreichem installieren von $C5
Const $E1 = "Das Setup war erfolgreich." ; Meldung das Instalaltion abgeschlossen ist
Const $E2 = "Erstellt von Alina H.-L. Änderungswünscht an mich."
Const $E3 = 3000 ; Anzeigedauer der Fenster in tauselsten Sekunde hier 3 Sekunden
Alles anzeigen