batch problem

  • #1
F

fred feuerstein

Guest
Hallo,
Ich habe mir ein Batch-Menu erstelt ,von dem weitere Batch Dateien gestartet werden ,die sich jeweils mit einem Server verbinden .

Befehl für die .bat:

ftp -s:do1.ftp

do1.ftp:
open ftp.test.ch
user
password

So ,nun muss ich theoretisch in jede *.ftp Datei separat den Server,User und Passw. eingeben .
Ich würde es aber lieber so haben ,dass ich zb. mit dem Befehl

IP ,User ,Pass eingeben:notepad config.txt

in die config.txt

open ftp.test.ch
user
password

reinschreibe und anschliessend diese 3 zeilen an den anfang jeder *.ftp schreibe .
Könnte mir jemand einen Tipp geben wie das mit einer Batch zu realisieren ist ?

mfg fred feuerstein
 
  • #2
Sorry, ich kann deiner Beschreibung nicht folgen....

Cheers,
Joshua
 
  • #3
sorry ,
vielleicht unlücklich ausgedrückt :)

nochmal ganz anders :
Ich habe mehrere Batchdateien die sich mit einem ftp verbinden und halt unterschiedliche jobs erledigen
Code:
do1.ftp :
open ftp.test.ch
user
password
lcd
.
.
.
bye
Code:
do2.ftp :
open ftp.test.ch
user
password
lcd
.
.
.
bye
Code:
do3.ftp :
open ftp.test.ch
user
password
lcd
.
.
.
bye
usw...
wenn ich mich jetzt mit einem anderen Server verbinde ,muss ich in jede *.ftp separat Server,User und Passw. eingeben dami überhaupt eine verbindung mit dem neuen Server zustande kommt.
Das würde ich halt anders machen wollen ,
und zwar nur einmal Server,User und Passw. in zB. eine config.txt eingeben
von der config.txt sollen dann die drei zeilen
Code:
open ftp.test.ch
user
password
jeweils an den Anfang jeder *.ftp gesetzt werden
Code:
*.ftp :
[color=Red]
open neuer servername 
neuer user 
neues password
[/color]
lcd
.
.
.
bye
Hoffe es ist jetzt etwas verständlicher :)
 
  • #4
Ja, nun hab ich es verstanden - leider kann ich dir da aber nicht weiterhelfen, sorry.

Cheers,
Joshua
 
  • #5
Trotzdem thx für deine Antwort
naja ,lässt sich vielleicht mit einer batch gar nicht realisieren ???
 
  • #6
schreib dir eine batch und lass die variablen interaktiv mit set /p einlesen, dann liest du mit echo die variablen aus und schreibst sie in deine text-datei mit der du den ftp steuern willst und fertig ... so könnte es aussehn: name ftp_batch.cmd

@echo off

if %1== goto eingabe_server
set server=%1
goto ausgabe_server

:eingabe_server
set /p server=Bitte Server eingeben:
goto ausgabe_server

:ausgabe_server
echo Ausgabe zur Kontrolle:
echo server=%server%

pause

echo %server% > ftp.txt

.
.
.

ftp -s:ftp.txt

echo FTP Übertragung fertig ...
pause

das selbe dann für jeden anderen befehl auch

und als letztes dann den ftp starten mit der fertigerstellten ftp.txt ... den set /p gibts aber erst ab w2k aufwärts ...

greetz

hugo
 
  • #7
Hallo hp,
vielen Dank für deine Antwort ,
habe deinen Vorschlag so umgesetzt :
Code:
@echo off
echo open >> q.txt
if %1== goto eingabe_server
set server=%1
goto ausgabe_server

:eingabe_server
set /p server=Bitte Server eingeben:
goto ausgabe_server

:ausgabe_server
echo Ausgabe zur Kontrolle:
echo server=%server%

echo %server% >> ftp.txt


if %1== goto eingabe_benutzer
set benutzer=%1
goto ausgabe_benutzer

:eingabe_benutzer
set /p benutzer=Bitte Benutzer eingeben:
goto ausgabe_benutzer

:ausgabe_benutzer
echo Ausgabe zur Kontrolle:
echo benutzer=%benutzer%

echo %benutzer% >> ftp.txt



if %1== goto eingabe_passw
set passw=%1
goto passw_server

:eingabe_passw
set /p passw=Bitte Passwort eingeben:
goto ausgabe_passw

:ausgabe_passw
echo Ausgabe zur Kontrolle:
echo passw=%passw%

echo %passw% >> ftp.txt

pause

die ftp.txt hat nun folgenden inhalt :
.
.
.
job
.
.
.
open
testserver
testuser
testpw

die Eingabe wird am ende der ftp.txt geschrieben und nicht am anfang .
Wenn die ftp.txt neu erzeugt wird steht alles natürlich am anfang ,
was ich jetzt nicht verstehe ,wie ersetze ich nun die verbindungsdaten in meinen do1.ftp durch die neu erzeugten 4 Zeilen :-[

Ich glaube ich habe deinen Vorschlag nicht ganz bis zum Ende verstanden .

ps: in einem anderem forum habe ich diese lösung gefunden ,funktioniert aber bei mir nicht :

Code:
for /f tokens=* %%k IN DATEI.TXT DO (SET ParsedLine=%%k) & (call :Sub1)
GOTO :EOF

:Sub1
if %ParsedLine% EQU wasauchimmer SET ParsedLine=andererText
ECHO %ParsedLine% >> BEISPIEL.TXT


habe win xp

mfg fredf
 
Thema:

batch problem

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben