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-Key: 261228

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

Ausgedruckt am: 28.03.2024 um 20:03 Uhr

Mitglied: 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
Mitglied: 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