Debugge halt mal ein bisschen, schau nach ob die pfade korrekt sind, was liefert denn shellexecute zurück, du kannst auch mal das workingdir ändern.
Bei 0 Fehlern und keiner Warnung ist das script durchgelaufen, und es gab keine internen fehler (falsche arraygröße z.B.) im scripting, aber ob die datei gefunden wurde oder nicht ist kein fehler, der dir so zurück geliefert wird, den musst du abfragen
Beiträge von TheLuBu
-
-
Schau dir mal die hilfe zu _filelisttoarray an, da kann man auch filter setzen
-
[autoit]
For $i = 1 To $aFilelist[0]
[/autoit][autoit][/autoit][autoit]
$ext = StringRight($aFilelist[$i], 4)ConsoleWrite(" Datei: " & $aFilelist[$i])
[/autoit]
If $ext == ".jpg" Then
If _FTP_FilePut($l_FTPSession, "C:\temp\" & $aFilelist[$i], $aFilelist[$i]) Then
ConsoleWrite(" Upload: erfolgreich" & @CRLF)
Else
ConsoleWrite(" Upload: fehlgeschlagen " & " " & @error & @CRLF)
EndIf
EndIf
Next
[autoit]
Du prüfst auf die Dateiendung Case Sensitive, wenn die Datei mit .JPG endet, wird sie nicht hochgeladen. Ich denke bei einer Dateiendung reicht auchIf $ext = ".jpg" Then
[/autoit] -
Zitat
die Aktionen in der If müssen die sein, die in der rechten ListView unter dem If-Eintrag stehen.
Da weiß ich leider nicht was du meinst
Kannst du das was genauer beschreiben? -
Du kannst die Dateien Binär einlesen
[autoit]
[/autoit]
FileOpen("Name", 16)
FileRead()Und die Binärdaten in deinem Script speichern.
Dann statt FIleinstall mit FileWrite die Datei erstellen.Vielleicht regt das Kaspersky ja nicht auf

-
Öhm also willst du einem Menüeintrag eine Tastenkombination hinzufügen, oder soll die Tastenkombination hinter dem Menüeintrag stehen?
[autoit]_GUICtrlMenu_AddMenuItem ($hEdit, "K&opieren", $idCopy) ; Tastenkombination Strg + O ohne Text
[/autoit]
_GUICtrlMenu_AddMenuItem ($hEdit, "K&opieren"&@TAB&"Strg + O", $idCopy) ; Tastenkombination Strg + O mit Texxt -
[autoit]
#include <File.au3>
[/autoit]
$Path = "C:\Users\"&@UserName&"\AppData\Roaming\Microsoft\Signatures"
$Newpath = "D:\BACKUP\Signatures"
$List = _Filelisttoarray($Path)
For $i = 1 To $List[0]
FileCopy($Path&"\"&$List[$i], $newpath&"\"&$List[$i],
Next -
Guten morgen, teste mal das hier

Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <File.au3>
#include <Array.au3>
Global $c = 0 ;Variable für den Clienten Computer
Global $a = 0
Global $b = 0; Variable für den Server
Global $i = 1
Global $j = 1
Global $vergleich
Global $Instalation
Global $ProgArraySharp[200]
Global $ProgArraySer[200]
Global $ProgArrayCli[200]
;;BlockInput(1)
$filepath = "C:\Users\WIN_2\Desktop\AutoiT-uebergabe.txt"
$hFile = FileOpen($filepath) ; öffnet die Datei vom C Programm
$hFile2 = "\\VBOXSVR\Downloads\Server-Programme.txt"
$Serverarray = _CSV2Array($hFile2) ; liest die Server.txt in ein Array ein
$cnt = _FileCountLines("C:\Users\WIN_2\Desktop\AutoiT-uebergabe.txt") ; zählt die Anzahl an Programmen, die geupdated werden müssen
For $i = 1 To $cnt
$Filename = FileReadLine($hFile, $i) ; leist jedes zu updatende Programm ein
For $k = 1 To UBound($Serverarray) - 1
If $Serverarray[$k][0] = $Filename Then ; wenn das upzudatende Programm gefunden wurde
Switch $Filename
Case "Dev-CPP"
devcpp()
Case "Anderes Programm"
;funktion
EndSwitch
Exitloop; geht zum nächsten Programm weiter
EndIf
Next
NextFunc _CSV2Array($hFile, $cSeperator = "auto", $bFilterString = True, $iColumnMode = 0)
[/autoit] [autoit][/autoit] [autoit]
Local $s = FileRead($hFile)
If @error Then Return SetError(1)
If $cSeperator = Default Then $cSeperator = "auto"
If Not $cSeperator Then $cSeperator = Opt("GUIDataSeparatorChar")
; searching the line-seperator and splitting the lines into an array
Local $aLines
If StringInStr($s, @CRLF) Then
$aLines = StringSplit($s, @CRLF, 1)
ElseIf StringInStr($s, @CR) Then
$aLines = StringSplit($s, @CR)
Else
$aLines = StringSplit($s, @LF)
EndIf
; searching the delimiter in the first line
Local $aTMP
If $cSeperator = "auto" Then
Local $iMax = 0
Local $iC[5] = [0, 0, 0, 0, 0]
Local $sC[5] = [";", ",", @TAB, "|", " "]$aTMP = StringRegExp($aLines[1], ";", 3)
[/autoit] [autoit][/autoit] [autoit]
If Not @error Then $iC[0] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], ",", 3)
If Not @error Then $iC[1] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "\t", 3)
If Not @error Then $iC[2] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "\|", 3)
If Not @error Then $iC[3] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "[ ]", 3)
If Not @error Then $iC[4] = UBound($aTMP)For $i = 0 To UBound($sC) - 1
[/autoit] [autoit][/autoit] [autoit]
If $iC[$i] > $iMax Then
$iMax = $iC[$i]
$cSeperator = $sC[$i]
EndIf
Next
EndIf
; creating 2-dim array based on the number of data in the first line
$aTMP = StringSplit($aLines[1], $cSeperator)
Local $iCol = $aTMP[0]
Local $aRet[$aLines[0]][$iCol]
; splitting and filling the lines
For $i = 1 To $aLines[0]
$aTMP = StringSplit($aLines[$i], $cSeperator)
If @error Then ContinueLoop
If $aTMP[0] > $iCol Then
Switch $iColumnMode
Case 0
Return SetError(2, $i)
Case 1
ReDim $aRet[$aLines[0] - 1][$aTMP[0]]
Case 2
$aTMP[0] = $iCol
Case Else
Return SetError(3)
EndSwitch
EndIf
For $j = 1 To $aTMP[0]
$aTMP[$j] = StringStripWS($aTMP[$j], 7)
If $bFilterString Then ; removing leading and trailing " or '
$aTMP[$j] = StringRegExpReplace($aTMP[$j], '^("|'')(.*?)\1$', '$2')
EndIf
$aRet[$i - 1][$j - 1] = $aTMP[$j]
Next ; /cols
Next ; /lines
Return $aRet
EndFunc ;==>_CSV2ArrayFunc devcpp()
[/autoit]
BlockInput(1)
ShellExecute("devcpp.exe") ; hier noch den kompletten Pfad angeben
WinWait("Dev-C++","Welcome",15)
ControlClick("Dev-C++","Welcome","Button1")
WinWait("Installer Language","Please select a language.",15)
ControlCommand("Installer Language","Please select a language.","ComboBox1","Selectstring","Deutsch")
ControlClick("Installer Language","Please select a language.","Button1")
WinWait("Dev-C++","Lizenzabkommen",15)
ControlClick("Dev-C++","Lizenzabkommen","Button2")
WinWait("Dev-C++","Komponenten",15)
ControlCommand("Dev-C++","Komponenten","ComboBox1","Selectstring","Full")
ControlFocus("Dev-C++","Komponenten","SysTreeView321")
ControlSend("Dev-C++","Komponenten","SysTreeView321", "{DOWN 8}" & "{SPACE}" & "{DOWN 2}" & "{SPACE}")
ControlClick("Dev-C++","Komponenten","Button2")
WinWait("Dev-C++","Zielverzeichnis",15)
ControlSetText("Dev-C++","Zielverzeichnis","Edit1", "C:\Programme\Dev-Cpp\")
ControlClick("Dev-C++","Zielverzeichnis","Button2")
WinWaitActive("Dev-C++","Do you want")
ControlClick("Dev-C++","Do you want","Button2")
WinWait("Dev-C++","Die Installation von Dev-C++",15)
ControlClick("Dev-C++","Die Installation von Dev-C++","Button4")
ControlClick("Dev-C++","Die Installation von Dev-C++","Button2")
BlockInput(0)
EndFuncIn der Funktion devcpp bitte noch den vollen Pfad hinzufügen

-
Ok, versuchen wir es etwas anders

Versuche mal, das Script hier
Spoiler anzeigen
[autoit]BlockInput(1)
[/autoit]
Run("devcpp.exe")
WinWait("Dev-C++","Welcome",15)
ControlClick("Dev-C++","Welcome","Button1")
WinWait("Installer Language","Please select a language.",15)
ControlCommand("Installer Language","Please select a language.","ComboBox1","Selectstring","Deutsch")
ControlClick("Installer Language","Please select a language.","Button1")
WinWait("Dev-C++","Lizenzabkommen",15)
ControlClick("Dev-C++","Lizenzabkommen","Button2")
WinWait("Dev-C++","Komponenten",15)
ControlCommand("Dev-C++","Komponenten","ComboBox1","Selectstring","Full")
ControlFocus("Dev-C++","Komponenten","SysTreeView321")
ControlSend("Dev-C++","Komponenten","SysTreeView321", "{DOWN 8}" & "{SPACE}" & "{DOWN 2}" & "{SPACE}")
ControlClick("Dev-C++","Komponenten","Button2")
WinWait("Dev-C++","Zielverzeichnis",15)
ControlSetText("Dev-C++","Zielverzeichnis","Edit1", "C:\Programme\Dev-Cpp\")
ControlClick("Dev-C++","Zielverzeichnis","Button2")
WinWaitActive("Dev-C++","Do you want")
ControlClick("Dev-C++","Do you want","Button2")
WinWait("Dev-C++","Die Installation von Dev-C++",15)
ControlClick("Dev-C++","Die Installation von Dev-C++","Button4")
ControlClick("Dev-C++","Die Installation von Dev-C++","Button2")
BlockInput(0)In das Hauptscript zu schreiben und dann mit
[autoit]Switch
[/autoit]zu arbeiten.
Ich muss jetzt leider erstmal weg, morgen bin ich wieder da
-
Benutz bitte Spoiler, sonst muss man soweit scrollen

Was heißt denn es passiert nix?
[autoit]
RunWait($Serverarray[$k][2])
[/autoit]
Er startet das Script, welches in der Textdatei hinterlegt ist, also in dem Beispielfall
und wartet, bis das Script geschlossen ist, und läuft dann weiter -
[autoit]
#include <File.au3>
[/autoit]
$hFile = FileOpen(@ScriptDir & "\Textdatei.txt", 0)
$cnt = _FileCountLines(@ScriptDir & "\Textdatei.txt")
For $i = 1 To $cnt
$Line = FileReadLine($hFile)
If StringInStr($Line, "Updater$") <> 0 Then
$Wert = StringTrimLeft($Line, 17)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Wert = ' & $Wert & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
EndIf
Next -
ok, ändere mal CSV2array in _csv2array
da fehlt der Unterstrich -
-
ich seh keine Zeile 706
Die beiden Schnipsel haben nur 120 Zeilen zusammen.Starte das Script einfach mal in Scite, dann kriegst du ja eine genauere Fehlermeldung
achso, ein include noch vergessen
[autoit]
#include <File.au3>
[/autoit] -
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $c = 0 ;Variable für den Clienten Computer
Global $a = 0
Global $b = 0; Variable für den Server
Global $i = 1
Global $j = 1
Global $vergleich
Global $Instalation
Global $ProgArraySharp[200]
Global $ProgArraySer[200]
Global $ProgArrayCli[200]
;;BlockInput(1)
$filepath = "C:\Users\WIN_2\Desktop\AutoiT-uebergabe.txt"
$hFile = FileOpen($filepath) ; öffnet die Datei vom C Programm
$hFile2 = "\\VBOXSVR\Downloads\Server-Programme.txt"
$Serverarray = CSV2Array($hFile2) ; liest die Server.txt in ein Array ein
$cnt = _FileCountLines("C:\Users\WIN_2\Desktop\AutoiT-uebergabe.txt") ; zählt die Anzahl an Programmen, die geupdated werden müssen
For $i = 1 To $cnt
$Filename = FileReadLine($hFile, $i) ; leist jedes zu updatende Programm ein
For $k = 1 To UBound($Serverarray) - 1
If $Serverarray[$k][0] = $Filename Then ; wenn das upzudatende Programm gefunden wurde
RunWait($Serverarray[$k][2]) ; Startet das Programm
Exitloop; geht zum nächsten Programm weiter
EndIf
Next
NextFunc _CSV2Array($hFile, $cSeperator = "auto", $bFilterString = True, $iColumnMode = 0)
[/autoit] [autoit][/autoit] [autoit]
Local $s = FileRead($hFile)
If @error Then Return SetError(1)
If $cSeperator = Default Then $cSeperator = "auto"
If Not $cSeperator Then $cSeperator = Opt("GUIDataSeparatorChar")
; searching the line-seperator and splitting the lines into an array
Local $aLines
If StringInStr($s, @CRLF) Then
$aLines = StringSplit($s, @CRLF, 1)
ElseIf StringInStr($s, @CR) Then
$aLines = StringSplit($s, @CR)
Else
$aLines = StringSplit($s, @LF)
EndIf
; searching the delimiter in the first line
Local $aTMP
If $cSeperator = "auto" Then
Local $iMax = 0
Local $iC[5] = [0, 0, 0, 0, 0]
Local $sC[5] = [";", ",", @TAB, "|", " "]$aTMP = StringRegExp($aLines[1], ";", 3)
[/autoit] [autoit][/autoit] [autoit]
If Not @error Then $iC[0] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], ",", 3)
If Not @error Then $iC[1] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "\t", 3)
If Not @error Then $iC[2] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "\|", 3)
If Not @error Then $iC[3] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "[ ]", 3)
If Not @error Then $iC[4] = UBound($aTMP)For $i = 0 To UBound($sC) - 1
[/autoit]
If $iC[$i] > $iMax Then
$iMax = $iC[$i]
$cSeperator = $sC[$i]
EndIf
Next
EndIf
; creating 2-dim array based on the number of data in the first line
$aTMP = StringSplit($aLines[1], $cSeperator)
Local $iCol = $aTMP[0]
Local $aRet[$aLines[0]][$iCol]
; splitting and filling the lines
For $i = 1 To $aLines[0]
$aTMP = StringSplit($aLines[$i], $cSeperator)
If @error Then ContinueLoop
If $aTMP[0] > $iCol Then
Switch $iColumnMode
Case 0
Return SetError(2, $i)
Case 1
ReDim $aRet[$aLines[0] - 1][$aTMP[0]]
Case 2
$aTMP[0] = $iCol
Case Else
Return SetError(3)
EndSwitch
EndIf
For $j = 1 To $aTMP[0]
$aTMP[$j] = StringStripWS($aTMP[$j], 7)
If $bFilterString Then ; removing leading and trailing " or '
$aTMP[$j] = StringRegExpReplace($aTMP[$j], '^("|'')(.*?)\1$', '$2')
EndIf
$aRet[$i - 1][$j - 1] = $aTMP[$j]
Next ; /cols
Next ; /lines
Return $aRet
EndFunc ;==>_CSV2ArrayHatte es oben schon berichtigt, hatte mich beim Array vertan ^^. Ersetz mal bitte das alte Script ( von mir) mit dem hier
-
kannst ud dein ganzes Script mal posten?
-
[autoit]
_FileListtoarray()
[/autoit]
ansonsten gibts von Bugfix auch noch eine Funktion, die Rekursiv alle Dateien auch in Unterordnern sucht -
-
Hab dein Script mal etwas umgeschrieben, wenn ich dich richtig verstanden habe, sollte das aber so funktionieren

Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $c = 0 ;Variable für den Clienten Computer
Global $a = 0
Global $b = 0; Variable für den Server
Global $i = 1
Global $j = 1
Global $vergleich
Global $Instalation
Global $ProgArraySharp[200]
Global $ProgArraySer[200]
Global $ProgArrayCli[200]
;;BlockInput(1)
$filepath = "C:\Users\WIN_2\Desktop\AutoiT-uebergabe.txt"
$hFile = FileOpen($filepath) ; öffnet die Datei vom C Programm
$hFile2 = "\\VBOXSVR\Downloads\Server-Programme.txt"
$Serverarray = CSV2Array($hFile2) ; liest die Server.txt in ein Array ein
$cnt = _FileCountLines("C:\Users\WIN_2\Desktop\AutoiT-uebergabe.txt") ; zählt die Anzahl an Programmen, die geupdated werden müssen
For $i = 1 To $cnt
$Filename = FileReadLine($hFile, $i) ; leist jedes zu updatende Programm ein
For $k = 1 To UBound($Serverarray) - 1
If $Serverarray[$k][0] = $Filename Then ; wenn das upzudatende Programm gefunden wurde
RunWait($Serverarray[$k][2]) ; Startet das Programm
Exitloop; geht zum nächsten Programm weiter
EndIf
Next
NextFunc _CSV2Array($hFile, $cSeperator = "auto", $bFilterString = True, $iColumnMode = 0)
[/autoit] [autoit][/autoit] [autoit]
Local $s = FileRead($hFile)
If @error Then Return SetError(1)
If $cSeperator = Default Then $cSeperator = "auto"
If Not $cSeperator Then $cSeperator = Opt("GUIDataSeparatorChar")
; searching the line-seperator and splitting the lines into an array
Local $aLines
If StringInStr($s, @CRLF) Then
$aLines = StringSplit($s, @CRLF, 1)
ElseIf StringInStr($s, @CR) Then
$aLines = StringSplit($s, @CR)
Else
$aLines = StringSplit($s, @LF)
EndIf
; searching the delimiter in the first line
Local $aTMP
If $cSeperator = "auto" Then
Local $iMax = 0
Local $iC[5] = [0, 0, 0, 0, 0]
Local $sC[5] = [";", ",", @TAB, "|", " "]$aTMP = StringRegExp($aLines[1], ";", 3)
[/autoit] [autoit][/autoit] [autoit]
If Not @error Then $iC[0] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], ",", 3)
If Not @error Then $iC[1] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "\t", 3)
If Not @error Then $iC[2] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "\|", 3)
If Not @error Then $iC[3] = UBound($aTMP)
$aTMP = StringRegExp($aLines[1], "[ ]", 3)
If Not @error Then $iC[4] = UBound($aTMP)For $i = 0 To UBound($sC) - 1
[/autoit]
If $iC[$i] > $iMax Then
$iMax = $iC[$i]
$cSeperator = $sC[$i]
EndIf
Next
EndIf
; creating 2-dim array based on the number of data in the first line
$aTMP = StringSplit($aLines[1], $cSeperator)
Local $iCol = $aTMP[0]
Local $aRet[$aLines[0]][$iCol]
; splitting and filling the lines
For $i = 1 To $aLines[0]
$aTMP = StringSplit($aLines[$i], $cSeperator)
If @error Then ContinueLoop
If $aTMP[0] > $iCol Then
Switch $iColumnMode
Case 0
Return SetError(2, $i)
Case 1
ReDim $aRet[$aLines[0] - 1][$aTMP[0]]
Case 2
$aTMP[0] = $iCol
Case Else
Return SetError(3)
EndSwitch
EndIf
For $j = 1 To $aTMP[0]
$aTMP[$j] = StringStripWS($aTMP[$j], 7)
If $bFilterString Then ; removing leading and trailing " or '
$aTMP[$j] = StringRegExpReplace($aTMP[$j], '^("|'')(.*?)\1$', '$2')
EndIf
$aRet[$i - 1][$j - 1] = $aTMP[$j]
Next ; /cols
Next ; /lines
Return $aRet
EndFunc ;==>_CSV2Array-EDIT- beim Array vertan, geändert
-
[autoit]
[/autoit]
$runonce = 0
If @HOUR = 10 and $runonce = 0 Then
;.......Funktion
$Runonce = 1
EndIF