lolio
Goto Top

Mit Batch Scriptzeile in .txt ändern.

(Hintergrund: Ftp Script)

Hallo It forum Team,
Ich habe folgendes problem und zwar möchte ich mir eine Bat erstellen die folgende eigenschaften hat:
1.-Fragt User nach seinem Usernamen auf dem ftp server.
2.-Fragt User nach dem dazugehörigen Passwort.
3.-Fragt User nach der Ip des Servers.
4.-Fragt User nach seinem Home verzeichniss.
5.-Connectet mithilfe dieser daten zum Ftp Server
6.-Führt dort ein paar cmmandos aus.

Nachdem ich die schritte 1-4 ausgeführt worden sind möchte ich ihn über folgende zeile:

FTP -n -d -s:1.txt %ip%

connecten lassen.

In der txt Datei 1.txt befinden sich die Commandos die nach dem verbinden ausgeführt werden sollen sie sieht folgendermaßen aus:

USER username
PASS passwort
cd /httpdocs/
mkdir test
mkdir test2
mkdir test3
quit

Mein Problem besteht jetzt darin dass "username" und "passwort" in 1.txt logischerweise mit dem inhalt der in Schritt 1.-2. erstellten Variablen %username% und %passwort% ersetzt werden sollen.
Damit beim connecten auch die richtigen daten verwendet werden.

Hier nocheinmal der wichtige teil meiner Bat:


:choice
echo()----------Ftp Script-----------()
@echo 1. Los


@echo off
set /p choice=

if %choice% == 1 goto infos

:Infos
@echo Dein UserName:
set /p username=
@echo Server Ip:
set /p ip=
@echo Pfad bis zum Home Ordner:
set /p homeordner=
goto connect

:connect
FTP -n -d -s:1.txt %ip%


Wie könnte ich das realisieren?

Mfg. lolio

Content-Key: 50668

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

Printed on: April 18, 2024 at 19:04 o'clock

Member: miniversum
miniversum Feb 04, 2007 at 11:48:02 (UTC)
Goto Top
Du könntest es über eine Temponäre Datei regeln.

Du hast ja deine eingaben von Benutzername und Passwort:

@echo Dein UserName:
set /p username=
@echo Dein Passwort:
set /p passwort=

In deine 1.txt schreibst du alles außer den ersten Beiden Zeilen für Benutzername und Passwort, also:

cd /httpdocs/
mkdir test
mkdir test2
mkdir test3
quit

Dann erstellst du eine Temponäre Datei die du wirklich verwendest:

echo USER %username%>%temp%\2.txt
echo PASS %passwort%>>%temp%\2.txt
type 1.txt>>2.txt

Dann kommt den Aufruf, allerdings mit 2.txt statt 1.txt:

FTP -n -d -s:%temp%\2.txt %ip%

und anschließend kanst du die Temponäre Datei aus Sicherheitsgründen wieder löschen:

del %temp%\2.txt /Q


miniversum
Member: bastla
bastla Feb 04, 2007 at 12:02:57 (UTC)
Goto Top
... und die Variableninhalte (speziell von %passwort%) per "setlocal" / "endlocal" oder zumindest mit "set passwort=" eliminieren.

Abgesehen davon wird das Passwort bisher nicht eingegeben und der %homeordner% noch nicht verwendet. Am "Menü" wirst Du sicher auch noch etwas basteln müssen (etwa: Was soll passieren, wenn nicht "1" eingegeben wurde?).

Grüße
bastla
Member: lolio
lolio Feb 04, 2007 at 14:01:09 (UTC)
Goto Top
Hallo,
Danke schoneinmal die beiden Antworten haben mir schon sehr weiter geholfen.
das Menü wird natürlich noch verändert, aber bei dem "cd" zum vorher definierten Home Directory hakts noch etwas.

Ich habe wie in der Antwort von miniversum geraten das ganze nun so gelöst:

:Infos
@echo Dein Name:
set /p username=
@echo Passwort:
set /p passwort=
@echo Server Ip:
set /p ip=
@echo Pfad bis zum Home Ordner:
set /p vorordner=
echo USER %username%>%temp%\2.txt
echo %passwort%>>%temp%\2.txt
type 1.txt>>2.txt
goto connect

:connect
FTP -n -d -s:%temp%\2.txt %ip%

Aber wo kann ich jetzt den Befehl zum switchen zum angegeben verzeichniss nach dem connecten und dem login unterbrigen und wie würde der lauten?

Danke schonmal im Vorraus.
Mfg. lolio
Member: bastla
bastla Feb 04, 2007 at 15:01:32 (UTC)
Goto Top
Hallo lolio!

Wenn der Pfad für den "homeordner" zB "/httpdocs/homeordner" lautet, ist die erste Zeile aus der "1.txt" zu löschen und ebenfalls per Batch zu erstellen. Zusätzlich müsstest Du in der "type"-Zeile für "2.txt" den Pfad richtig angeben, sodass der entsprechende Teil in Deinem Batch etwa so aussehen müsste:
echo USER %username%>%temp%\2.txt
echo PASS %passwort%>>%temp%\2.txt
echo cd /httpdocs/%homeordner%>>%temp%\2.txt
type 1.txt>>%temp%\2.txt

Grüße
bastla
Member: miniversum
miniversum Feb 04, 2007 at 15:19:31 (UTC)
Goto Top
Ups. Das mit dem verbummelten %temp% bei
type 1.txt>>%temp%\2.txt
war mein Fehler.

Stimmt zum Spuren beseitigen mit endlocal und einem del %temp%\2.txt /Q am Ende wäre gut.

miniversum

Ps: ich sollte glaub ich in zukunft das Zeug was ich poste 2 mal lesen.
Member: Biber
Biber Feb 06, 2007 at 07:44:02 (UTC)
Goto Top
Moin lolio,

seh ich das richtig, dass dieser Beitrag auch von Dir als "gelöst" empfunden wird und von mir geschlossen werden kann?

Gruss
Biber
Member: lolio
lolio Feb 06, 2007 at 13:33:57 (UTC)
Goto Top
Ja sie ist gelöst.
Dankeschön ihr habt mir sehr weitergeholfen.
Mfg. lolio