radiodata
Goto Top

CMD-FTP Batch - Server, User, Pass abfrage

Hallo zusammen

ich bin ein Neuling und frage mal hier.
Ich habe einige Scripte die Dateien auf dem ftp-Server verschieben kopieren oder löschen.

Nun sollte das für viele verschiedene User uns gemacht werden. Ich muss dann aber bei jedem Script den Server, User und pass von Hand eingeben.
Gibt es da eine Möglichkeit eine User abfrage zu machen, das ich pro Benutzer nur ein user.txt habe?

vielen Dank für eure Hilfe

Tomy

Content-Key: 231103

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

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

Member: bastla
bastla Feb 26, 2014 updated at 20:48:39 (UTC)
Goto Top
Hallo radiodata und willkommen im Forum!
Gibt es da eine Möglichkeit eine User abfrage zu machen, das ich pro Benutzer nur ein user.txt habe?
Aufgrund Deiner ausführlichen Problembeschreibung fällt die Antowrt natürlich leicht - sie lautet: Vermutlich ja. face-wink

Grüße
bastla
Member: laster
laster Feb 27, 2014 at 11:20:51 (UTC)
Goto Top
Hallo Tomy,

wenn Du pro User eine Textdatei hast, in der in der Username und Passwort steht (natürlich im Klartext ...),
echo username password > ~mist.txt
dann kannst Du diese Daten wie folgt verwenden:
for /F "tokens=1" %%i in ('type ~mist.txt') do @set UNAME=%%i  
for /F "tokens=2" %%i in ('type ~mist.txt') do @set UPASS=%%i  
echo User: %UNAME%, Passwort: %UPASS%.

viel Vergnügen
LS
Member: Sheogorath
Sheogorath Feb 27, 2014 updated at 12:04:12 (UTC)
Goto Top
Moin,

also wenn du eine allgemeine CSV-Datei verfasst, dann kannst du folgendes nutzen:

for /F "delims=; tokens=1,2,3,4" %%a IN (test.csv) DO (  
if %%a equ %username% (
set "ftpserver=%%b"  
set "ftpuser=%%c"  
set "ftppasswort=%%d"  
)
)

echo %ftpserver%
echo %ftpuser%
echo %ftppasswort%
pause

Ich persönlich würde aber auf folgende Lösung setzen:

set "savedconfigfile=%USERPROFILE%\testconfig.bat"  
IF DEFINED 1 (
 if "%1"=="reset" del "%savedconfigfile%"  
)

IF Exist "%savedconfigfile%" (  
	call "%savedconfigfile%"  
	set "save=n"  
) else (
	set /P "ftpserver=FTP-Servername: "  
	set /P "ftpuser=FTP-Username: "  
	set /P "ftppasswort=FTP-Passwort: "  
	set /P "save=Möchten sie die Daten speichern?(J/N)"  
)

if "%save%"=="J" (  
	echo set "ftpserver=%ftppasswort%">"%savedconfigfile%"  
	echo set "ftpuser=%ftpuser%">>"%savedconfigfile%"  
	echo set "ftppasswort=%ftppasswort%">>"%savedconfigfile%"  
)

echo %ftpserver%
echo %ftpuser%
echo %ftppasswort%
pause

Hier wird einfach die Abfrage ob eine Konfiguration vorliegt, wenn ja, werden einfach diese Daten genommen, wenn nicht, werden die Daten abgefragt.

Das spart dir, wenn du deine User gut erzogen hast, viel Zeit. ;)

Gruß
Chris
Member: radiodata
radiodata Feb 27, 2014 at 18:04:05 (UTC)
Goto Top
Hallo Laster

Vielen Dank für deine Hilfe. Es sieht super aus, aber ich kapiere es noch nicht ganz.
Ja ich habe pro User eine eigene datei.

ich starte das script mit folgendem befehl.

"verschieben.cmd"......
ftp.exe -i -s:script1.txt


Dann öffnet Script1...mit folgenden Befehlen.....

open ftp.server.de
login
pass
hash


cd data_8
ren woche_5 loeschen
ren woche_4 woche_5
ren woche_3 woche_4
ren woche_2 woche_3
ren woche_1 woche_2
mkdir woche_1

close
quit

Dann hab ich ein "user.txt" dort stehen die Userdaten drin.

user.txt

server=ftp.server.de
user=benutzer1
pass=pass1

Wo und wie muss ich das einfügen.?
Sorry für die wahrscheilich dämliche Frage.
Member: radiodata
radiodata Feb 27, 2014 at 18:13:36 (UTC)
Goto Top
Hallo Chris

Vielen Dank für deine Lösung sieht auch toll aus, aber ich als Anfänger bin da etwas überfordert. Ich versuche es aber trozdem.
Wie muss die .CSV Datei aussehen?

Lieber Gruss
Tomy
Member: Sheogorath
Sheogorath Feb 27, 2014 at 22:51:50 (UTC)
Goto Top
Moin,

Meine CSV Datei sieht so aus:

username;ftpserver2;ftpuser;ftppasswort;
username1;ftpserver1;ftpuser1;ftppasswort;
username2;ftpserver2;ftpuser2;ftppasswort;
username3;ftpserver3;ftpuser3;ftppasswort;


Aber ich erkläre dir mal meine 2. Lösung. Sie ist eigentlich nicht so schwer.

REM Pfad zur Datei in dem Fall, im Userverzeichnis
set "savedconfigfile=%USERPROFILE%\testconfig.bat"  
REM Hier wird geprüft, ob ein Parameter übergeben wurde 
IF DEFINED 1 (
REM hier wird geprüft, ob der übergebene Parameter "RESET" ist, wenn ja, wird die alte Konfiguration gelöscht.  
   if "%1"=="reset" del "%savedconfigfile%"  
)

REM es wird auf die existient der Konfigurationsdatei
IF Exist "%savedconfigfile%" (  
REM   Hier wird die Konfigurationsdatei aufgerufen, es handelt sich hierbei um eine Batchdatei, in der die Daten per Set eingesetzt werden. (Siehe unten)
	call "%savedconfigfile%"  
	set "save=n"  
) else (
 REM Existiert die Konfigurationsdatei nicht, werden die User nach den Daten gefragt.
	set /P "ftpserver=FTP-Servername: "  
	set /P "ftpuser=FTP-Username: "  
	set /P "ftppasswort=FTP-Passwort: "  
	set /P "save=Möchten sie die Daten speichern?(J/N)"  
)
REM hier wird die Abfrage auf den Text gemacht, und wenn "J" darin steht, wird die Konfiguration geschreiben  
if "%save%"=="J" (  
	echo set "ftpserver=%ftppasswort%">"%savedconfigfile%"  
	echo set "ftpuser=%ftpuser%">>"%savedconfigfile%"  
	echo set "ftppasswort=%ftppasswort%">>"%savedconfigfile%"  
)


REM hier handelt es sich um Blindtext, hier kann dein aufruf rein
echo %ftpserver%
echo %ftpuser%
echo %ftppasswort%
pause

Alles in allem, hoffe ich, es ist etwas verständlicher geworden.

Gruß
Chris