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?
@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
Please also mark the comments that contributed to the solution of the article
Content-Key: 127369
Url: https://administrator.de/contentid/127369
Printed on: April 26, 2024 at 20:04 o'clock
3 Comments
Latest comment
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ß