Batch FTP, Verarbeitungsfehler durch FTP-Server
Hallo, habe folgendes Codestück...
for /f "tokens=4*" %%i in (%LASTLW%\FTP-Sync\doku.log) do (if not exist "%LASTLW%\ebt\doku\%%i %%j" echo del %%i %%j>>ftp.txt)
...das mir eine LOG-Datei (dir-Ausgabe von einem FTP Verzeichnis) mit einem Verzeichnis abgleicht. Wenn im Verzeichnis nicht die passende Datei zum String in der LOG gefunden wurde, wird ein delete-Befehl zusammen mit dem String aus der LOG ausgegeben um die Datei, die auf dem FTP existiert, aber im lokalen Verzeichnis nicht existiert, geöscht wird.
Hier ein Beispiel der Ausgabe:
del KR 11-034-1 (Btw. S12345 Test).doc
Der Befehl wird an den FTP übermittelt, aber leider verarbeitet der FTP diesen anscheinend nicht, da die Dateien leider nicht gelöscht werden.
Ich vermute, dass es an den Leerzeichen im Dateinamen liegt, denn wenn ich das ganze manuell abändere (den Dateinamen in Anführungszeichen setze), also so...
del "KR 11-034-1 (Btw. S12345 Test).doc"
... dann verarbeitet der FTP das ganze auch ohne Probleme und löscht die Datei.
Meine Frage ist nun, wie ändere ich das Codestück oben um, dass er mir die Ausgabe genau so (Dateiname in Anführungszeichen) ausgibt?
Habe verucht die Variablen in der Ausgabe in Anführungszeichen zu setzen,...
for /f "tokens=4*" %%i in (%LASTLW%\FTP-Sync\doku.log) do (if not exist "%LASTLW%\ebt\doku\%%i %%j" echo del "%%i %%j">>ftp.txt)
...aber so erfolgt dann garkeine Ausgabe.
Hoffe mir kann jemand helfen, danke schon mal.
Gruß Armin
for /f "tokens=4*" %%i in (%LASTLW%\FTP-Sync\doku.log) do (if not exist "%LASTLW%\ebt\doku\%%i %%j" echo del %%i %%j>>ftp.txt)
...das mir eine LOG-Datei (dir-Ausgabe von einem FTP Verzeichnis) mit einem Verzeichnis abgleicht. Wenn im Verzeichnis nicht die passende Datei zum String in der LOG gefunden wurde, wird ein delete-Befehl zusammen mit dem String aus der LOG ausgegeben um die Datei, die auf dem FTP existiert, aber im lokalen Verzeichnis nicht existiert, geöscht wird.
Hier ein Beispiel der Ausgabe:
del KR 11-034-1 (Btw. S12345 Test).doc
Der Befehl wird an den FTP übermittelt, aber leider verarbeitet der FTP diesen anscheinend nicht, da die Dateien leider nicht gelöscht werden.
Ich vermute, dass es an den Leerzeichen im Dateinamen liegt, denn wenn ich das ganze manuell abändere (den Dateinamen in Anführungszeichen setze), also so...
del "KR 11-034-1 (Btw. S12345 Test).doc"
... dann verarbeitet der FTP das ganze auch ohne Probleme und löscht die Datei.
Meine Frage ist nun, wie ändere ich das Codestück oben um, dass er mir die Ausgabe genau so (Dateiname in Anführungszeichen) ausgibt?
Habe verucht die Variablen in der Ausgabe in Anführungszeichen zu setzen,...
for /f "tokens=4*" %%i in (%LASTLW%\FTP-Sync\doku.log) do (if not exist "%LASTLW%\ebt\doku\%%i %%j" echo del "%%i %%j">>ftp.txt)
...aber so erfolgt dann garkeine Ausgabe.
Hoffe mir kann jemand helfen, danke schon mal.
Gruß Armin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188996
Url: https://administrator.de/contentid/188996
Ausgedruckt am: 19.11.2024 um 20:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo mybusiness1987!
Abgesehen davon, dass die zuletzt gezeigte Schreibweise eigentlich funktionieren sollte, könntest du auch den gesamten Dateinamen am Stück bekommen:
Grüße
bastla
P.S.: "Code"-Formatierung ist gar nicht so schwer (und lässt sich auch nachträglich noch hinzufügen ) ...
Abgesehen davon, dass die zuletzt gezeigte Schreibweise eigentlich funktionieren sollte, könntest du auch den gesamten Dateinamen am Stück bekommen:
for /f "tokens=3*" %%i in (%LASTLW%\FTP-Sync\doku.log) do if not exist "%LASTLW%\ebt\doku\%%j" echo del "%%j">>ftp.txt
bastla
P.S.: "Code"-Formatierung ist gar nicht so schwer (und lässt sich auch nachträglich noch hinzufügen ) ...