noob-x
Goto Top

Vorgang abbrechen wenn Datei nicht auf ftp server geladen wird

Hallo,

bitte um Eure Hilfe.

Habe mir hier aus dem Forum und anderen Quellen ein paar Codeschnipsel zusammengesucht.

Ich möchte eine Datei auf einen FTP Server laden und anschließend in einen Archivordner verschieben.
Mein Problem ist dass wenn der FTP Server nicht erreichbar ist die Datei trotzdem in den Archivordner verschoben wird.

Hier der Code vom Batch-file

cd\
ftp -i -s:C:\ftp\dl.ftp > C:\ftp\Log\Log.txt

move pfad\*.txt pfad\Archiv ( um diese Datei geht es )


und hier der Code von der dl.ftp

open 1.1.1.1
user
passw
binary
lcd pfad
cd VERARBEITET
mget *.xxx
mdelete *.xxx
cd ..
cd UPLOAD
mput pfad\*.txt

quit

wie kann ich verhindern dass die .txt Datei ins Archiv verschoben wird wenn der ftp server nicht erreichbar ist.
bzw wäre super wenn in diesem Fall ne Mail an mich versendet würde ( das könnte ich mit blat machen, nur wie löse ich das im Fall aus )

Danke für Eure HIlfe


LG

Andy

Content-Key: 183472

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

Printed on: April 19, 2024 at 19:04 o'clock

Mitglied: 60730
60730 Apr 13, 2012 at 16:19:42 (UTC)
Goto Top
moin,

Habe mir hier aus dem Forum und anderen Quellen ein paar Codeschnipsel zusammengesucht.

ich quäle dich ja nur ungern, aber welche quellen waren das denn?
 Die Suche ist aktuell überlastet oder nicht verfügbar! Bitte versuchen Sie es in ein paar Minuten wieder!
na endlich face-wink


anyways...
was steht denn in beiden Fällen in C:\ftp\Log\Log.txt?
eben - und wenn mich nicht alles täuscht, steht das in einer der möglichen quellen auch genauso beschrieben.

Gruß
Member: mak-xxl
mak-xxl Apr 14, 2012 at 09:55:38 (UTC)
Goto Top
Moin noob-x,

etwa so:

@echo off
ftp -s:upload.txt > upload.log
for /f "delims=" %%i in ('type upload.log ^| findstr /i /c:"File received successfully"') do (  
 echo Kopiere ins Archiv
)

Das Konstrukt in Zeile 3 sucht in der 'upload.log' den entscheidenden String 'File received successfully'.

Die Zeile 4 ersetzt Du durch den Code, der die gewünschte Datei kopiert.

Mailversand (= Mail im Fehlerfall) wäre in der 'else'-Erweiterung unterzubringen - oder auch so:

@echo off
ftp -s:upload.txt > upload.log
for /f "delims=" %%i in ('type upload.log ^| findstr /i /c:"File received successfully"') do (  
 echo Kopiere ins Archiv
 exit /b 0
)
blat.exe ...

Die Ausführung des Kopierbefehls kannst Du an die 'upload.log' anhängen ('>> upload.log') und diese als Attachment versenden lassen ...

Bitte benutze beim Posten (auch nachträglich) die -Tags.

Freundliche Grüße von der Insel - Mario