Das kannst du alles in ein Sript packen. Wenn deine 3 Dateien Lokal genauso heisen wie Remote und alle im gleichen Ordner gespeichert werden, sieht es so aus:
Spoiler anzeigen
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <FTPEx.au3>
Opt('MustDeclareVars', 1)
_example()
[/autoit] [autoit][/autoit] [autoit]Func _example()
Local $s_ServerName = 'ftp.wortmann.de' ;dieser Server existiert
Local $s_Username = "meinuser"
Local $s_Password = "meinpass"
Local $s_LocalPath = @ScriptDir & "P:\preislisten\\"
Local $s_RemotePath = "/Preislisten/"
Local $aFiles[3] ;da in der Schleife zum Herunter laden UBound benutzt wird kann hier einfach das Array angepasst werden die Dateinamen müssen angegeb en werden, snst nichts
$aFiles[0] = "JTL_WAWI.csv"
$aFiles[1] = "JTL_WAWH.csv" ;Namen austauschen
$aFiles[2] = "JTL_WAWO.csv" ;Namen austauschen
Local $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann auch mit 1 für passive Verbung testen
[/autoit] [autoit][/autoit] [autoit]Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP
[/autoit] [autoit][/autoit] [autoit]$l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
$errOpen = @error
If Not @error Then
$l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
$errFTP = @error
If Not @error Then
For $i = 0 To UBound($aFiles) - 1
If _FTP_FileGet($l_FTPSession, $s_RemotePath & $aFiles[$i], $s_LocalPath & $aFiles[$i]) Then
;ShellExecute($s_LocalPath)
ConsoleWrite("Download: " & $aFiles[$i] & " erfolgreich" & @CRLF)
Else
ConsoleWrite("Download: " & $aFiles[$i] & " fehlgeschlagen " & " " & @error & @CRLF)
EndIf
Next
Else
MsgBox(0, "Connect", "fehlgeschlagen")
ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
EndIf
Else
MsgBox(0, "Open", "fehlgeschlagen")
ConsoleWrite("Open " & " " & $errOpen & @CRLF)
EndIf
_FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
;ab hier kannst du den Skriptcode für den nächsten Server anhängen
$s_ServerName = 'ftp.wortmann2.de' ;< ======= anpassen
$s_Username = "meinuser"
$s_Password = "meinpass"
$s_LocalPath = @ScriptDir & "P:\preislisten2\\" ;< ======= anpassen
$s_RemotePath = "/Preislisten/" ;< ======= anpassen
;Local $aFiles[3] ;evt. mit Redim neue Arraygrösse festlegen
$aFiles[0] = "JTL_WAWI.csv" ;< ======= anpassen
$aFiles[1] = "JTL_WAWH.csv" ;< ======= anpassen
$aFiles[2] = "JTL_WAWO.csv" ;< ======= anpassen
;$i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann auch mit 1 für passive Verbung testen
[/autoit] [autoit][/autoit] [autoit]$l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
$errOpen = @error
If Not @error Then
$l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
$errFTP = @error
If Not @error Then
For $i = 0 To UBound($aFiles) - 1
If _FTP_FileGet($l_FTPSession, $s_RemotePath & $aFiles[$i], $s_LocalPath & $aFiles[$i]) Then
;ShellExecute($s_LocalPath)
ConsoleWrite("Download: " & $aFiles[$i] & " erfolgreich" & @CRLF)
Else
ConsoleWrite("Download: " & $aFiles[$i] & " fehlgeschlagen " & " " & @error & @CRLF)
EndIf
Next
Else
MsgBox(0, "Connect", "fehlgeschlagen")
ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
EndIf
Else
MsgBox(0, "Open", "fehlgeschlagen")
ConsoleWrite("Open " & " " & $errOpen & @CRLF)
EndIf
_FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
EndFunc ;==>_example
ich denke das war erst einmal genug für heute, denn du solltest dir die verwendeten Befehle noch in der Hilfe anschauen damit du sie verstehst und später selbstständig verwenden kannst.
Edit: Skriptfehler bereinigt
mfg autoBert