reisszahn2009
Goto Top

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

Content-Key: 127369

Url: https://administrator.de/contentid/127369

Printed on: April 26, 2024 at 15:04 o'clock

Mitglied: 60730
60730 Oct 18, 2009 at 14:23:15 (UTC)
Goto Top
Servus,

mangels Winblows @home face-wink - 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

Probiers mal aus - wie geschrieben ungetestet.

Gruß
Member: Reisszahn2009
Reisszahn2009 Oct 18, 2009 at 14:53:20 (UTC)
Goto Top
Leider nein. Was soll der Type-Befehl bringen?
Auch wenn man die Ausgabe mit ">" übergibt, bringt es nichts
Member: Reisszahn2009
Reisszahn2009 Oct 23, 2009 at 06:29:40 (UTC)
Goto Top
Realisiert mit einem Tool namens "rpl" (http://sourceforge.net/projects/gnuwin32/files/rpl/1.4.1-1)

rem Teil III.I - Mit Kommando "rpl" die CR-Zeichen am Ende entfernen  
rem --------------------------------------------------
for /f "delims== tokens=1,2" %%i in ('findstr "toolsdir" config.ini') do @set toolsdir=%%j  
%toolsdir%\rpl\bin\rpl.exe -q -e "\r" "" ftpcmd2.dat 1>nul 2>>&1