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

Überprüfen eines FTP-Verzeichnisses ob Ordner vorhanden ist

Mitglied: hansbaer

hansbaer (Level 1) - Jetzt verbinden

15.04.2014 um 17:34 Uhr, 3903 Aufrufe, 1 Kommentar

Hallo mal wieder,

ich möchte gerne mit hilfe einer batch überprüfen, ob auf einem FTP Server ein bestimmtes Verzeichnis vorhanden ist.
So Sachen wie "if exist", etc kann ich ja bei ftp Protokoll nicht verwenden, oder?

Beste Grüße,

hansbaer
Mitglied: colinardo
15.04.2014, aktualisiert 16.04.2014
Hallo hansbaer,
mit Batch müsstest du die Ausgabe von ftp mit findstr auf den Return-Code vom cd-Befehl hin durchsuchen. Das könnte so aussehen:
01.
@echo off 
02.
set FTPSERVER=ftp.deinserver.de 
03.
set FTPUSER=USERNAME 
04.
set FTPPASS=PASSWORD 
05.
set ORDNER=/pfad/abc/deinordner 
06.
 
07.
set "commandfile=%temp%\remotecommands.txt" 
08.
 
09.
echo open %FTPSERVER%>"%commandfile%" 
10.
echo %FTPUSER%>>"%commandfile%" 
11.
echo %FTPPASS%>>"%commandfile%" 
12.
echo cd %ORDNER%>>"%commandfile%" 
13.
echo quit>>"%commandfile%" 
14.
 
15.
ftp -i -s:"%commandfile%" | findstr /b "550" >nul && goto EXISTIERTNICHT || goto EXISTIERT 
16.
 
17.
:EXISTIERTNICHT 
18.
echo Ordner existiert nicht  
19.
goto weiter 
20.
 
21.
:EXISTIERT 
22.
echo Ordner existiert 
23.
 
24.
:weiter 
25.
del /q "%commandfile%" 2>nul 
26.
 
Alternativ ein Script mit AutoIT als Konsolenanwendung kompiliert und du hast auch eine Lösung (Server und Zugangsdaten ab Zeile 6 eintragen)
Genutzt wird das kompilierte Programm dann so
check_ftp.exe "/pfad/zum/Ordner"
Als Parameter gibt man den Pfad zum Ordner an welchen du auf Vorhandensein überprüfen willst (ohne abschließenden Slash).
Es gibt dann als Exit-Code eine 0 aus wenn es den Ordner gefunden hat und eine 1 wenn nicht, bei einem anderen Fehler eine 2.
AutoIt-Console-Script zum testen ob ein FTP-Ordner existiert
01.
#NoTrayIcon 
02.
#Region ;**** Directives created by AutoIt3Wrapper_GUI **** 
03.
#AutoIt3Wrapper_Change2CUI=y 
04.
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** 
05.
#include <FTPEx.au3> 
06.
Const $FTPSERVER = "ftp.domain.de" 
07.
Const $USERNAME = "USERNAME" 
08.
Const $PASSWORD = "PASSWORD" 
09.
 
10.
global $ftppath,$folder,$found 
11.
if $cmdline[0] = 1 then 
12.
		$arr = StringRegExp($cmdline[1],"^(.*)/(.*)$",3) 
13.
		if UBound($arr) < 1 then 
14.
			ConsoleWriteError("Fehler - Der FTP-Pfad sollte immer mit eine Slash '/' beginnen") 
15.
			Exit 2 
16.
		EndIf 
17.
		$ftppath = $arr[0] 
18.
		$folder = $arr[1] 
19.
Else 
20.
	ConsoleWriteError("Fehler - Fehlender FTP-Pfad als erster Parameter!") 
21.
	exit 2 
22.
EndIf 
23.
 
24.
$open = _FTP_Open("FTP-Connection") 
25.
if $open = 0 then 
26.
	ConsoleWriteError("Fehler - Keine Internetverbindung.") 
27.
	exit 2 
28.
endif 
29.
 
30.
$conn = _FTP_Connect($open,$FTPSERVER,$USERNAME,$PASSWORD) 
31.
if $conn = 0 then 
32.
	ConsoleWriteError("Fehler - Konnte die FTP-Verbindung nicht aufbauen") 
33.
	_FTP_Close($conn) 
34.
	exit 2 
35.
EndIf 
36.
if $ftppath <> "" then 
37.
	$ret = _FTP_DirSetCurrent($conn,$ftppath) 
38.
	if $ret = 0 then 
39.
		ConsoleWriteError("Fehler - Konnte nicht in das angegebene Verzeichnis wechseln ") 
40.
		_FTP_Close($conn) 
41.
		exit 2 
42.
	EndIf 
43.
endif 
44.
 
45.
$dirArray = _FTP_ListToArray($conn,1) 
46.
_FTP_Close($conn) 
47.
 
48.
if $dirArray[0] > 0 then 
49.
	for $i = 1 to $dirArray[0] 
50.
		if $dirArray[$i] = $folder then 
51.
			$found = true 
52.
			exitloop 
53.
		endif 
54.
	Next 
55.
EndIf 
56.
 
57.
if $found then 
58.
	ConsoleWrite("GEFUNDEN: '" & $cmdline[1]) 
59.
	exit 0 
60.
Else 
61.
	ConsoleWrite("NICHT GEFUNDEN: '" & $cmdline[1]) 
62.
	exit 1 
63.
Endif
Noch eine Möglichkeit ist es die Library von WINSCP zu nutzen (die unterstützt auch SFTP/FTPS SSH Verbindungen), und das z.B. so mit Powershell prüfen ob ein Ordner existiert:
Mit Powershell und der WinSCP .NET-Library überprüfen ob ein FTP-Ordner existiert
01.
[Reflection.Assembly]::LoadFrom("C:\WinSCPnet.dll") 
02.
$sessionOptions = New-Object WinSCP.SessionOptions 
03.
$sessionOptions.Protocol = [WinSCP.Protocol]::Ftp 
04.
$sessionOptions.HostName = "ftp.domain.de" 
05.
$sessionOptions.UserName = "USERNAME" 
06.
$sessionOptions.Password = "PASSWORD" 
07.
$session = New-Object WinSCP.Session 
08.
try{ 
09.
    $session.Open($sessionOptions) 
10.
    $exists = $session.FileExists("/Pfad/testOrdner") 
11.
    if ($exists){ 
12.
      write-host "Ordner existiert" 
13.
    }else{ 
14.
      write-host "Ordner konnte nicht gefunden werden" 
15.
16.
17.
finally{ 
18.
    $session.Dispose()     
19.
}
Hierzu benötigt man das .NET-Assembly(.dll) und die EXE von WinSCP die man hier herunterladen kann: http://winscp.net/eng/download.php
Diese sollten dann zusammen im selben Verzeichnis liegen.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Vor dem Verzeichniss erstellen überprüfen ob Ordner vorhanden sind

Frage von TommylikBatch & Shell12 Kommentare

Hallo, Ich habe mir folgendes geschrieben: Funktioniert ohne Probleme. Es wird immer das Laufwerk D genutzt. Könnte mir einer ...

Batch & Shell

FTP-SSL Synchronisation bestimmter Ordner bzw. Verzeichnisse

Frage von BlattlausOGBatch & Shell4 Kommentare

Guten Abend, seit Tagen suche ich per Google nach Lösungsansätze wie zwei FTP-Server via Batchscript synchronisiert werden können, schlussendlich ...

Batch & Shell

Batch-Datei soll überprüfen ob ein Verzeichnis vorhanden ist

gelöst Frage von synapsenstauBatch & Shell7 Kommentare

Moin, wie bringe ich bitte einer Batch-Datei bei, das sie "schaut" ob ein Verzeichnis vorhanden ist und wenn nicht ...

Batch & Shell

Batch: Ordner auf Datei überprüfen

gelöst Frage von donmanolitoBatch & Shell4 Kommentare

Hallo Ich suche eine Möglichkeit alle Ordnernamen eines Verzeichnisses in eine Variable zu schieben um dann per Schleife ein ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...