joetee
Goto Top

FTP Bath Skipt DEL geht nicht

Hi,


ich habe das folgende Skirpt am Laufen

echo open %server%>ftpcmd2.dat
echo user %user%>>ftpcmd2.dat
echo %password%>>ftpcmd2.dat
echo prompt>>ftpcmd2.dat
echo bin>>ftpcmd2.dat
FOR /F "tokens=*" %%p IN (%k%) DO echo DEL %%p>>ftpcmd2.dat
echo quit>>ftpcmd2.dat
ftp -n -s:ftpcmd2.dat

Leider liefert die Zeile mit der For-Schleife beim Ausführen den Fehler "no such file or dirctory". In %k% wird eine Datei mit Einträgen ausgelesen, die gelöscht werden sollen. Wenn ich die einzelnen Einträge von Hand mit dem DEL-command in die Dateieitrage an Stelle der FOR-Schleife funzt alles korrekt.

Wo ist mein gedanklicher Fehler an der Stelle, so dass e nicht funzt ?

Grüsse
Frischling-Admin

Content-ID: 261228

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

Ausgedruckt am: 13.11.2024 um 09:11 Uhr

rubberman
Lösung rubberman 26.01.2015, aktualisiert am 27.01.2015 um 06:51:10 Uhr
Goto Top
Hallo JoeTee,

schau doch mal in deine ftpcmd2.dat, ob die Einträge korrekt übernommen werden. Ggf. übergib die Dateinamen ein Anführungszeichen eingefasst, falls sie Leerzeichen enthalten.
FOR /F "tokens=*" %%p IN (%k%) DO >>ftpcmd2.dat echo DEL "%%~p"
Die Umgekehrte Schreibweise für Umleitungen, wie oben vorgegaukelt, ist zudem sicherer.

Woher kommt denn die Fehlermeldung eigentlich? Von der FOR Schleife oder von FTP?

Grüße
rubberman
JoeTee
JoeTee 27.01.2015 um 06:53:44 Uhr
Goto Top
Hallo rubberman,

in der ftpcmd2.dat sind die FTP-Befehle in der Reihenfolge, wie sie sein sollen

server
user ....
DEL Dateiname1
DEL Dateiname2
DEL Dateiname n

Die Fehlermeldung kommt beim Ausführen der Datei am Client. Das Skript wird korrekt abgearbeitet.

Grüsse
JoeTee