Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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 Login mit Abfragen

Frage Entwicklung Batch & Shell

Mitglied: Magnifico

Magnifico (Level 1) - Jetzt verbinden

10.06.2011 um 11:32 Uhr, 4458 Aufrufe, 11 Kommentare

Moin ihr Batch kundigen, ich brauchte mal etwas Hilfe von euch, da ich mich mit dieser Materie überhaupt nicht auskenne.
ich brauche eine Batch-Datei welche folgendes macht:
FTP-Verbindung zu einem bestimmten Server herstellt und dann erstmal aktiv nach Benutzer und Passwort fragt (Benutzername und Passwort sollen aus Sicherheitsgründen nicht fest hinterlegt sein), dann soll automatisch lokal und auf dem Server automatisch in ein Bestimmtes Verzeichnis gewechselt werden, dann soll eine Datei abgeholt werden (get), es soll aber aktiv nach dem Dateinamen gefragt werden.

dies wird täglich Manuel immer gemacht und um dies etwas zu verkürzen wäre so eine Batch-Datei denke ich sehr sinnvoll.
Mitglied: Skyemugen
10.06.2011 um 11:40 Uhr
Aloha,

nö, macht keinen Sinn für mich - Filezilla auf, Anmelden, das bestimmte Verzeichnis lässt sich bereits vorher definieren und dann kann man die Datei auch dort auswählen und herunterladen ...

Wenn man noch manuell alles eingeben soll (vorallem Abfrage des Dateinamen ...) dann sehe ich keinen Sinn für eine Batchdatei hier.

greetz André
Bitte warten ..
Mitglied: Magnifico
10.06.2011 um 11:59 Uhr
danke schomal für dein Kommentar, grundsätlich würde dies sicher auch funktionieren, aber wozu ein extra Programm nutzen wenn es auch per script umzusätzen geht, klickibunti soll es in diesm Fall nicht sein.
Bitte warten ..
Mitglied: Skyemugen
10.06.2011 um 12:21 Uhr
Aloha,

es geht auch per Firefox FireFTP plugin also ohne extra FTP-Clientprogramm aber gerade die Auswahl der gewünschten Datei sollte doch per drag&drop einfacher laufen, denke ich.

Also ich habe es doch richtig interpretiert, dass der User den Dateinamen selber eingeben soll, oder soll eine Verzeichnisabfrage gestartet werden, woraus der User dann z.B. per zugeordneter Zahl die Wahl hat?

greetz André
Bitte warten ..
Mitglied: Magnifico
10.06.2011 um 12:32 Uhr
Ja, der User soll den Dateinamen selber eingeben. Zu deinem zweite Vorschlag, auch dies geht nicht, es soll keine zusätzliche Software installiert werden, es sollen nur die integrierten Windows -Elemente genutzt werden.
Bitte warten ..
Mitglied: Friemler
10.06.2011 um 12:50 Uhr
Hallo Magnifico,

teste mal das hier:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
cls 
06.
 
07.
set "FTPServer=ftp.DerServer.Domain" 
08.
set "RemoteDir=Das/Remote-Verzeichnis" 
09.
set "LocalDir=Das\Lokale Verzeichnis" 
10.
 
11.
 
12.
set "FTPGetDir=%TEMP%\ftpcmd.txt" 
13.
set "FTPGetFile=%TEMP%\ftpcmd.txt" 
14.
 
15.
set /p "Usr=Benutzername: " 
16.
set /p "Pwd=Passwort    : " 
17.
echo. 
18.
 
19.
> "%FTPGetDir%" echo open %FTPServer% 
20.
>>"%FTPGetDir%" echo user %Usr% %Pwd% 
21.
>>"%FTPGetDir%" echo ascii 
22.
>>"%FTPGetDir%" echo cd "%RemoteDir%" 
23.
>>"%FTPGetDir%" echo ls -l 
24.
>>"%FTPGetDir%" echo bye 
25.
 
26.
ftp -v -n -s:"%FTPGetDir%" 
27.
del "%FTPGetDir%" 
28.
 
29.
echo. 
30.
set /p "File=Dateiname: " 
31.
 
32.
> "%FTPGetFile%" echo open %FTPServer% 
33.
>>"%FTPGetFile%" echo user %Usr% %Pwd% 
34.
>>"%FTPGetFile%" echo binary 
35.
>>"%FTPGetFile%" echo cd "%RemoteDir%" 
36.
>>"%FTPGetFile%" echo get "%File%" "%LocalDir%\%File%" 
37.
>>"%FTPGetFile%" echo bye 
38.
 
39.
ftp -v -n -s:"%FTPGetFile%" 
40.
del "%FTPGetFile%"
Die Verbindung wird zweimal hergestellt. Beim ersten mal wird nur das gewünschte Remoteverzeichnis angezeigt. Dann Dateiname einlesen, ein zweites Mal die Verbindung herstellen und downloaden.

Die Variablen in den Zeilen 7 bis 9 an Deine Bedürfnisse anpassen. Dabei ist der Slash statt dem Backslash im Remote-Verzeichnispfad zu beachten.

Sollte es sich bei der Datei um eine Textdatei handeln, sollte das binary in Zeile 34 durch ascii ersetzt werden, dann werden Zeilenumbrüche ins Windowsspezifische Format konvertiert. Der Übertragungsmodus ist standardmäßig zwar sowieso ASCII, aber ohne die Befehle zur Umschaltung hat bei meinem Test mit dem AVM-FTP-Server der Verzeichniswechsel nicht funktioniert. Anscheinend wird nach dem Login noch eine kurze Verzögerung benötigt.

Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
10.06.2011 um 13:05 Uhr
Aloha Magnifico und Friemler, da war man mal eben Mittag essen *pfeif*

nun ich gehe davon aus, er weiß, wo er hinwill und gibt das vor,
dann soll automatisch lokal und auf dem Server automatisch in ein Bestimmtes Verzeichnis gewechsel
daher:

01.
@echo off & setlocal 
02.
set "log=%temp%\aktiv.ftp" 
03.
echo Bitte geben Sie den FTP-Benutzernamen ein:  
04.
set /p "login=" 
05.
echo( 
06.
echo Bitte geben Sie das Passwort ein:  
07.
set /p "pwd=" 
08.
echo( 
09.
echo Bitte geben Sie den Dateinamen ein:  
10.
set /p "Datei=" 
11.
echo( 
12.
 
13.
(echo open ftp.diegewuenschtedomain.de 
14.
echo %login% 
15.
echo %pwd% 
16.
echo binary 
17.
echo cd "www/htdocs/downloads" 
18.
echo lcd "E:/Test" 
19.
echo get "%Datei%" 
20.
echo bye)>"%log%" 
21.
echo Starte FTP-Transfer . . . 
22.
ftp -s:"%log%" 
23.
echo Fertig. 
24.
del "%log%" 
25.
pause 
26.
goto :eof
open ftp.diegewuenschtedomain.de = ist klar, oder?
cd "www/htdocs/downloads" = Der Pfad im FTP
lcd "E:/Test" = Der lokale Pfad
Editiere die Pfade, speichere die .bat (oder .cmd) und vermeide Umlaute

greetz André

edit: binary und so ...
Bitte warten ..
Mitglied: Friemler
10.06.2011 um 13:38 Uhr
Hi André,

bei der Übertragung von Binärdateien kommt ohne den Befehl binary aber nur Wurstsalat auf dem lokalen System an...

Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
10.06.2011 um 13:51 Uhr
Aloha Friemler,

öhm joa, das ging doch irgendwie unter, glaube beim Löschen der REM-Zeilen, habe ich das wohl miterwischt, hehe.

greetz André
Bitte warten ..
Mitglied: Magnifico
10.06.2011 um 13:54 Uhr
Hey Friemler und Andre, danke für eure Bsp's,
Andre mal eine kleine nach frage zu deinem code, bzw. zu dem Ablauf, laut deinem code wird doch eine temp. Log-Datei erstellt mit den 3 Variablen oder täusche ich mich da? lässt sich das vielleicht auslassen, dh. dass es abgefragt wird und dann direkt verarbeitet ohne zwischen zuspeichern, oder ist die zu komplex für batch?
Bitte warten ..
Mitglied: Skyemugen
10.06.2011 um 14:30 Uhr
Aloha,

das ist bei Friemler nicht anders (vorweg gesagt) und es ist auch nicht vermeidbar, da ftp eigenständig arbeitet und per batch dann nur ftp -s:DateimitallenbenötigtenInhalten.ftp zulässt - sprich:
01.
ftp 
02.
open ftp.domain.de 
03.
username 
04.
password 
05.
 
06.
etc.
Funktioniert nicht, weil ab dem Befehl ftp, die Batch nicht mehr greift.
Die temporäre Logdatei wird ja gleich nach der Benutzung wieder gelöscht und wenn du ohne arbeiten willst, dann nur über die cmd mit aktiver Steuerung (also ohne batch)

greetz André
Bitte warten ..
Mitglied: Friemler
12.06.2011 um 16:05 Uhr
Hallo Magnifico,

schau Dir mal die NcFTP-Suite an. Darin ist NcFTPGet enthalten. Dieses Konsolenprogramm ist nur zum schnellen Download einer Datei gedacht und man kann Benutzer und Passwort als Parameter übergeben => Kein Anlegen einer Datei mit FTP-Kommandos erforderlich, daher können Benutzer und Passwort direkt aus den eingelesenen Variablen übergeben werden.

Gruß
Friemler
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...