buxi
Goto Top

FTP-Batch mit Abfragen und beschränkten Eingaben durch User erstellen

mit FTP-Batch soll User seinen Account und das Passwort eingeben

Hallo werte ADMINISTRATOR.DE Mitglieder,

ich hoffe diese Frage kann irgendwie einfach gelöst werden.
Aufgabe:
Windows NT4/2000/XP-User
- Soll eine vorgegebene Datei von einem FTP-Server holen
- In der Batch soll aber nicht der FTP-Account/ d. FTP-Kennwort hinterlegt sein
- User soll Eingaben machen, die dann an die FTP-Batch übergeben werden
- nur mit Windows Bordmitteln zu lösen
Habe mal eine normale (anonymisierte ) Batch hinterlegt.
Hier die Batch die die interaktive FTP.txt Datei aufruft:
ftp -i -s:testftp.txt
Hier die Antwort-Datei (testftp.txt)
open ftpserver
testftp
testftp
cd ftpdir
lcd E:\Daten>
get TESTEXE testget.txt
close
quit
---
Wie kann ich es steuern , dass die o.g. User-Eingaben ordungsgemäss an den FTP-Prompt
übergeben werden ?
---Wenn es möglich wäre, dann bräuchte ich noch eine Lösung, die es dem User auch
---ermöglicht, das LCD und die zu holende Datei anzugeben.

Danke für jeden Lösungsansatz vorab 8- )
Buxi
P.S.:
In den Threads habe ich noch keine Lösung dafür gefunden,
wohl jemanden der das Problem anscheinend gelöst hat (
Beschreibung ist aber nicht dabei )

Content-Key: 27905

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

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: Schirrmeister
Schirrmeister 10.03.2006 um 22:35:38 Uhr
Goto Top
Da gibts 2 Möglichkeiten, bei beiden generierst Du die Datei testftp.txt dynamisch:

1. Du übergibst die Benutzerdaten als Parameter an die Batchdatei:
<font face="Lucida Console">
@echo off

set user=%1
set pass=%2

echo %user%> testftp.txt
echo %pass%>> testftp.txt
echo get index.html>> testftp.txt
echo quit>> testftp.txt

ftp -i -s:testftp.txt ftp-server
</font>

Aufruf mit Benutzername und Passwort.


2. Du ersetzt die beiden "set" Zeilen mit den folgenden:
<font face="Lucida Console">
set /p user=Geben Sie den Bentzernamen an:
set /p pass=Geben Sie das Passwort an:
</font>

Dann wird der Benutzer nach den Daten gefragt.
Achtung! hinter den Doppelpunkten steht jeweils ein Leerzeichen, ist nur Optik, aber es wird mit ausgegeben bei der Eingabeaufforderung.

edit: Du solltest natürlich nicht vergessen die Datei danach zu löschen face-smile
Mitglied: buxi
buxi 14.03.2006 um 11:45:07 Uhr
Goto Top
Hallo Schirrmeister,

danke für die "Anfahrhilfe" . Es gibt da evtl. ein kleines Problem in der Abarbeitung der Batch:
Info: Punkt 2. habe in die Batch eingefügt (set /P ...)
CD in das remote directory eingefügt
Die FTP-Übertragung funktioniert soweit face-smile
Wenn ich nun in die Batch zur Kontrolle am Ende ein PAUSE einfüge bekomme ich
von der FTP-Konsole folgenden Prompt zurück ( dies nach Übergabe der User-Daten ):
Dort ist beim TESTFTP-Logon am
ftp>ungltiger Befehl zu sehen
Gibt es eine Möglichkeit diesen "Fehler" einzugrenzen ?

ftp> open ftpserver
Verbindung mit ftpserver.test.com wurde hergestellt.
220-XXXX
220 Connection will close if idle more than 5 minutes.
Benutzer (ftpserver.test.comface-sadnone)):
331 Enter password.

230 TESTFTP logged on.
ftp>
Ungültiger Befehl
ftp> cd XXXX
Wenn ich die in die Testftp.txt übergebenen Daten manuell in eine neue TXT-Datei
schreibe und den FTP dann aufrufe, funktioniert es ohne Fehlermeldung
am FTP-Prompt. Ist ein Leerzeichen/CR daran Schuld ?
Wie kann ich Datei testftp.txt automatisch löschen lassen ?
1. Wenn Sie in einem Verzeichnis mit der Batch liegt ?
2. In einem anderen Verzeichnis liegen sollte ?
Reicht da für
1. del ( evtl. mit if exist )
2. del mit Pfadangabe
3. Wie kann ich sichergehen das die Datei gefunden wird
und auch gelöscht wird, unabhängig wo sie liegt ?

Gruß
buxi
EDIT 14.3.06: ftp> ungültiger Befehl URSACHE gefunden: Niemals über Zwischenablage in Word und dann in TXT-File kopieren ; - ]
Mitglied: Schirrmeister
Schirrmeister 14.03.2006 um 14:30:11 Uhr
Goto Top
Da Du die Datei ja selbst angelegt, und schon benutzt hast, weißt Du doch wo sie liegt (und das sie existiert).
Also einfach del testftp.txt, den Pfad setzt Du hier genauso wie beim anlegen der Datei.