Dateien per Batch vom FTP löschen?
Hi zusammen,
ich habe ein kleines Problem mit dem automatischen Löschen von FTP-Dateien.
Vielleicht kann mir einer von euch helfen?
Wie man sieht bekommt das Script ein paar Parameter übergeben. Das funktioniert auch alles. Das Problem ist die FOR-Schleife. Der "find /i"-Befehl hängt an jede gefundene "Backup-Datei" einen Zeilenumbruch. Dies kann man z.B. mit dem Notepad++ sehen (mit dem Windows-Notepad nicht). Wenn man diese Datei jetzt an den FTP übergibt meldet dieser, "Datei nicht gefunden" -> Eben aufgrund des Zeilenumbruch-Zeichens...
Hat einer eine Idee wie ich das Zeichen entfernen kann? Oder Alternativ, wie man das Script so umbauen kann, das es auf einem FTP 10 Dateien abzählt und ab der 11. löscht?
Vielen Dank
Gruß Reisszahn
ich habe ein kleines Problem mit dem automatischen Löschen von FTP-Dateien.
Vielleicht kann mir einer von euch helfen?
@echo off
rem Parameter einlesen
set ftpuser=%1
set ftppass=%2
set ftpip=%3
set ftplog=%4
set ftplimit=%5
rem Uebertragungsdatei bauen, um Dateiliste zu holen
echo user %ftpuser%> ftpcmd.dat
echo %ftppass%>> ftpcmd.dat
echo ls>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %ftpip% 1>%ftplog% 2>>&1
rem Uebertragungsdatei2 bauen, um Dateien zu löschen
echo user %ftpuser%> ftpcmd2.dat
echo %ftppass%>> ftpcmd2.dat
FOR /F "skip=%ftplimit%" %%d IN ('find /i "Backup" %ftplog%') DO (
echo delete %%d>>ftpcmd2.dat
echo %%d geloescht!
)
echo quit>> ftpcmd2.dat
ftp -n -s:ftpcmd2.dat %ftpip% 1>%ftplog% 2>>&1
del %ftplog%
del ftpcmd.dat
del ftpcmd2.dat
pause
:end
Wie man sieht bekommt das Script ein paar Parameter übergeben. Das funktioniert auch alles. Das Problem ist die FOR-Schleife. Der "find /i"-Befehl hängt an jede gefundene "Backup-Datei" einen Zeilenumbruch. Dies kann man z.B. mit dem Notepad++ sehen (mit dem Windows-Notepad nicht). Wenn man diese Datei jetzt an den FTP übergibt meldet dieser, "Datei nicht gefunden" -> Eben aufgrund des Zeilenumbruch-Zeichens...
Hat einer eine Idee wie ich das Zeichen entfernen kann? Oder Alternativ, wie man das Script so umbauen kann, das es auf einem FTP 10 Dateien abzählt und ab der 11. löscht?
Vielen Dank
Gruß Reisszahn
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127369
Url: https://administrator.de/contentid/127369
Ausgedruckt am: 08.11.2024 um 07:11 Uhr
3 Kommentare
Neuester Kommentar
Servus,
mangels Winblows @home - kann ich nur einen ungetesteten Tipp abgeben.
Probiers mal aus - wie geschrieben ungetestet.
Gruß
mangels Winblows @home - kann ich nur einen ungetesteten Tipp abgeben.
Zeile 28: type ftpcmd2.dat ftp_cmd2.dat
29.ftp -n -s:ftp_cmd2.dat %ftpip% 1>%ftplog% 2>>&1
29.ftp -n -s:ftp_cmd2.dat %ftpip% 1>%ftplog% 2>>&1
Probiers mal aus - wie geschrieben ungetestet.
Gruß