Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

FTP Verbindung prüfen per Batch

Frage Entwicklung Batch & Shell

Mitglied: dbreuer

dbreuer (Level 1) - Jetzt verbinden

28.01.2011, aktualisiert 15:25 Uhr, 8104 Aufrufe, 6 Kommentare

Hallo,
ich habe ein kleines Problem und hoffe ihr könnt mir helfen.

Ich möchte Dateien per Batch Datei übertragen und danach automatisch löschen.
Wenn aber die FTP Verbindung nicht zustande kommt werden die Dateien trotzdem gelöscht.
Nun brauche ich eine Abfrage, ob die FTP Verbindung erfolgreich war und erst danach sollen die Dateien übertragen werden.
Wenn die Verbindung nicht erfolgreich war soll die Batch einfach beendet werden.

Hier kommt mein Code:

ftp -s:c:\FTP\TEST\ftp.txt test.de
echo %errorlevel%
IF %ERRORLEVEL% EQU 0 goto start
IF %ERRORLEVEL% GRT 0 goto end
:start
echo erfolgreich
goto quit
:end
echo fehler
:quit

In der ftp.txt stehen die Zugangsdaten für den FTP Server drin.
Die FTP Verbindung wird auch erfolgreich ausgeführt.
Aber egal ob den Netzwerkstecker ziehe (simuliert Serverausfall) oder ob es erfolgreich ist, es wird immer der Errorlevel 0 ausgegeben?

Habe auch schon viel gegoogelt und hier im Forum den Tipp mit den Errorleveln gefunden, aber komme jetzt einfach nicht mehr weiter.

Ich hoffe ihr könnt mir helfen.

Dankeschön!

LIebe Grüße
David
Mitglied: Skyemugen
28.01.2011 um 15:43 Uhr
Aloha,

als erstes wäre eine <code></code> Formatierung schön für's Auge ;) - als zweites (ohne mich jetzt in den Errorlevel hinein zu denken - ich mag damit nicht arbeiten) könntest du ja die ftp Anmeldung laufen lassen und dann per if exist eine bestimmte file suchen, wenn die gefunden wird, ist die Verbindung aktiv, wenn nicht - dann nicht.

greetz André
Bitte warten ..
Mitglied: miniversum
28.01.2011 um 16:34 Uhr
IF %ERRORLEVEL% GRT 0 goto end
Funktioniert nicht. GTR heist größer:
EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als oder gleich
GTR - größer als
GEQ - größer als oder gleich
Bitte warten ..
Mitglied: 60730
28.01.2011 um 19:45 Uhr
moin,

01.
ftp -s:c:\FTP\TEST\ftp.txt test.de 
02.
echo %errorlevel% 
bedeutet im Klartext - rufe ftp.exe mit Parameter -s:c:\FTP\TEST\ftp.txt test.de auf.
Ergo nur wenn
  • ftp.exe
  • die Domain Test.de
  • oder die textdatei nicht gefunden wird, kommt ein anderer Errorlevel als 0 zurück.

Du mußt, wenn schon das Feedback von der FTP Session auslesen.
01.
ftp  -s:c:\FTP\TEST\ftp.txt>c:\FTP\TEST\ftpcheck.log 
02.
find "200 Type set to I" c:\FTP\TEST\ftpcheck.log && goto ok 
03.
 
04.
echo error 
05.
pause 
06.
:ok
Und die dazugehörige .txt
01.
open adresse 
02.
User 
03.
password 
04.
bin
Der Befehl "Bin" sorgt für das gesuchte 200 Type set to I und das gibt der FTP nicht zurück, wenn er hängt bzw. sollte man ja eh via bin übertragen.
Und man kann das noch ganz anders zimmern, aber so mache ich das.
Lass das einfach zweimal laufen und werte den Unterschied zwischen einer erfolgreichen und einer Übertragung mit Fehler aus.

Gruß
Bitte warten ..
Mitglied: -WeBu-
03.06.2011 um 20:02 Uhr
Ich hole diesen alten thread hoch, weil ich hier endlich die ersehnte Antwort von TimoBeil gelesen habe, daß ftp.exe einfach während einer fehlerhaften Übertragung innerhalb der Befehle von ftp.txt kein errorlevel ungleich 0 setzt.

Die Abfrage, ob der bin-Befehl gutging ("200 Type set to I"), ist ganz ok, aber ob dann auch die Übertragung gutging, weiß man nicht. Besser ist da die Abfrage auf "226 Transfer complete. Closing data connection." Für EINE Datei geht das, für mehrere nicht.

Aber, vielleicht könnte man überlegen, ob man eine komplette Übertragung per ftp.exe auch OHNE -s:ftp.txt hinbekommt. Wenn man einfach ALLES irgendwie auf eine Kommandozeile packt, also servername, user, passwort, local-file, server-file und wenn dann dabei irgendwas(!) schiefgeht, hat man (vielleicht) einen errorlevel, oder?

Wie aber bekommt man alles in einen ftp.exe-Aufruf?
Bitte warten ..
Mitglied: 60730
03.06.2011 um 21:02 Uhr
moin,

ganz einfach...
  • garnicht - oder besser/genauer (ich wüßte aus dem Stehgreif nicht wie)
...sondern anders.

  • bau dir ein Grundgerüst
User 
password 
bin
kopiere dieses Grundgerüst in einer Schleife zu einer temp. Datei
füge während der Schleife
cd ordner 
put xyz.suffix 
get abc.suffix
dazu und ein abschliessendes
quit
und schicke jede einzelne Datei / Ordner einzeln auf den FTP Server
  • oder suche nach "error /timeout"usw. in der "logdatei"
Nur weißt du dann wirklich nicht, wo es klemmt.

gruß
Am Montag bin ich wieder in der Windowswelt, vielleicht fällt mir ja doch noch was anderes ein.
Bitte warten ..
Mitglied: -WeBu-
03.06.2011 um 21:15 Uhr
Argh, das ist Aufwand.

Für meine eine Datei(!!) habe ich jetzt, wie erwähnt, deinen vorherigen Vorschlag abgewandelt und frage das ftpcheck.log genau auf das Vorhandensein von dem string "226 Transfer complete. Closing data connection." ab. Geht was schief, dann kommt dieser String nicht und ich lass mir per notepad sofort das log vorlegen, denn ich muss beim Übertragen einfach SOFORT wissen, ob alles geklappt hat und nicht erst einen Morgen später (per server-log-check o. ä.)

Bei der Gelegenheit habe ich einen bug bei strato festgestellt. Um auf Fehler zu checken, habe ich bei meinen Versuchen ans korrekte Passwort weitere Zeichen angehängt, ABER KEINEN FEHLER BEKOMMEN! Ein Strato-Server prüft offensichtlich zeichenweise und wenn genügend richtige Zeichen "da" sind, isser glücklich! Ich glaub das einfach nicht und ich wußte das auch nicht. Ist das bekannt?
Bitte warten ..
Ähnliche Inhalte
Windows Server
Printserver abschalten - Verbindungen prüfen
Frage von uridium69Windows Server4 Kommentare

Moin zusammen Wir haben seit einiger Zeit einen neuen Printserver in Betrieb, nun geht es darum den alten abzuschalten. ...

Batch & Shell
BATCH: Office Version prüfen
Frage von 118710Batch & Shell1 Kommentar

Hallo zusammen, vllt könnt ihr mir helfen. Ich möchte eine simple Batch Datei bauen, die erkennt welche Office Version ...

Batch & Shell
In Batch auf Erstelldatum einer Datei prüfen
gelöst Frage von AS-N00Batch & Shell5 Kommentare

Hallo, foolgendes Problem. Ich muss eine leer Datei "dpd.ini" in "d:\bw50" erstellen, wenn in einem Ordner "d:\bw50\dpd\export\" es keine ...

Windows Server
FTP-Verbindung - Verzeichnisinhalt kann nicht angezeigt werden
gelöst Frage von IrolanWindows Server6 Kommentare

Hallo zusammen, ich habe einen Windows Server 2012 R2, der hinter einem Router mit NAT sitzt. Nun habe ich ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 3 StundenErkennung und -Abwehr

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücke Spectre und ...

Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...