Jump to content

FTP /Variable


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen, hätte da mal wieder eine interessante Frage!!

 

Ich möchte von einem FTP Verzeichniss eine bestimmte datei herunterladen die ich vorher in einer Variabele bestimme.

Den rest erledigt der Batch..........."hab ich mir so gedacht", hat jemand nen guten Tip.

 

@echo off

set /P SI="Gib Bitte den Namen der Datei an "

:%SI%

:Echo %SI%

ftp open xxxxserver

controlling

controll

lcd c:\test

cd /share/ag/XX

get %SI%.txt

bye

 

Danke fürs Helfen....wie immer ggg

Link zu diesem Kommentar

Hai! :)

 

Ich mache da etwas "ähnliches"....

 

Du kannst dem FTP Befehlt eine Datei anhängen, in der stehen die Befehle.....

 

hier z.B.

-------------------------------

Batchdatei:

 

ftp -v -s:ftpbefehle.ftp 123.123.123.123

-------------------------------

-------------------------------

"ftpbefehle.ftp" Antwortdatei:

 

Administrator

xxxxxxxxxpasswordxxxxxxx

cd backups

prompt

dir

get backup.bkf

quit

--------------------------------

 

 

Jetzt kommt der "Gag" -> du kannst dir die Antwortdatei selber erstellen, z.B.

 

z.B.

 

echo laberlaberbefehl >ftpbefehle.ftp

echo zeile2laber >>ftpbefehle.ftp

 

usw.....

 

Vielleicht hilft es..... :D

 

 

Tschau Peter

Link zu diesem Kommentar

heho Peter,

 

danke für die schnelle Antwort, aber mit den beiden SKripten arbeite ich schon. Der Casus Knaktus ist das ich eine bestimmte Datei vom FTP verzeichniss haben will und nicht immer wieder die gleiche, deswegen wollte ich eine Variable einbauen um das ganze flexibel zu gestalten. Hinzukommt daß das ganze für einen User ist, der soll dann nurnoch den Dateinamen angeben und gut ist.

 

RTH

Fuchs

Link zu diesem Kommentar

Hallo Peter,

absolut hervorragend, die Varibale übergeben funzt einwandfrei, aber die bleibt nun in dem skript!!! Wie stell ich das denn an das die automatisch gelöscht wird, sonst wird die Liste ja immer länger!!!

Danke , du warst mir bis jetzt eine große Hilfe

Hier mein Skript

+++++++++++++++++++++++++++++++++++++++++++++

@echo off

set /P SI="Gib Bitte den Namen der Datei an "

:%SI%

:Echo %SI%

echo get %si% >>ftp1.txt

ftp -s:ftp1.txt

++++++++++++++++++++++++++++++++++++++++++++++

open xxxxxxxxx

user

password

lcd c:\test

cd /share/ag/xx

get

bye

get test.txt <---- soll nachher wieder gelöscht werden

get test.cmd <----- das olle ding auch

++++++++++++++++++++++++++++++++++++++++++++++

Link zu diesem Kommentar

Guten Morgen zusammen und speziell Peter,

die Idee mit dem Skript neu schreiben find ich gut. Das Skript wird auch angelget aber jetzt funktioniert keine Verbindung mehr bzw.

er akzeptiert keinen Nutzer mehr, mit Anonymus hab ich es schon probiert>> funzt aber auch nicht, die anderen Parameter bei FTP helfen auch nicht weiter. Ich tüftel mal weiter

 

echo off

set /P SI="Gib Bitte den Namen der Datei an "

:%SI%

:Echo %SI%

 

echo open titusbilder >>ftp1.txt

echo testuser >>ftp1.txt

echo testpasswordl >>ftp1.txt

echo user >>ftp1.txt

echo lcd c:\test >>ftp1.txt

echo cd .. >>ftp1.txt

echo cd .. >>ftp1.txt

echo cd .. >>ftp1.txt

echo cd share/ag/SicherungPP >>ftp1.txt

echo get %si% >>ftp1.txt

echo bye >>ftp1.txt

ftp -s :ftp1.txt

pause

Link zu diesem Kommentar

Moin moin,

 

falls Perl für Dich kein Fremdwort ist, kannst Du auch folgendes Script benutzen (habe es eben zusammengebastelt und getestet.)

 

Kopier Dir den folgenden Scriptcode in einen Editor, ändere die paar Konfigurationseinstellungen und speicher das ganze unter irgendeinem Namen (z.B. "getFtpFiles.pl") ab. Dann rufst Du es mit folgender Syntax auf:

perl getFtpFiles.pl -f <Dateiname> -p <FTP-Passwort>

 

Für das Script selber benötigst Du lediglich Perl und das Modul Net::Ftp.

 

Falls Du noch Fragen hast, meld Dich einfach...

 

Gruß,

Lennu

 

-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------

 

#!c:/programme/perl/bin/perl.exe

use strict;

use Getopt::Long;

use Net::FTP;

 

#

# Config

#

 

# Username ("ftp")

my $ftpuser = "";

 

# Hostname ("ftp.suse.de");

my $ftphost = "";

 

# Directory on FTP-Server ("/pub/suse/");

my $ftpdir = ""; # NEVER USE BACKSLASHES & END WITH SLASH

 

# Local Directory ("c:/winnt/temp/");

my $localdir = ""; # NEVER USE BACKSLASHES & END WITH SLASH

 

 

#################################################

# MAIN SCRIPT - DO NOT CHANGE ANYTHING BELOW!!! #

# (except you know what you do ;-) ) #

#################################################

 

 

my (%Config, $Result);

Getopt::Long::Configure( "prefix_pattern=(-|\/)" );

$Result = GetOptions( \%Config,

qw(

help|?|h

file|f=s

pass|p=s

) );

 

$Config{help} = 1 if( ! $Result || ! $Config{file} || ! $Config{pass});

 

if ($Config{help}) {

Usage();

exit();

}

 

my ($newerr, @ERRORS);

 

my $ftp=Net::FTP->new($ftphost,Timeout=>240) or $newerr=1;

push @ERRORS, "Can't ftp to $ftphost: $!\n" if $newerr;

myerr() if $newerr;

print "Connected to $ftphost\n";

 

$ftp->login($ftpuser,$Config{pass}) or $newerr=1;

#print "Getting file list";

push @ERRORS, "Can't login to $ftphost: $!\n" if $newerr;

$ftp->quit if $newerr;

myerr() if $newerr;

print "Logged in\n";

 

$ftp->type("I");

push @ERRORS, "Can't set type to binary: $!\n" if $newerr;

$ftp->quit if $newerr;

myerr() if $newerr;

print "Type binary set\n";

 

$ftp->cwd($ftpdir) or $newerr=1;

push @ERRORS, "Can't cd $!\n" if $newerr;

myerr() if $newerr;

$ftp->quit if $newerr;

print "Changed Directory";

 

my $localfile = $localdir.$Config{file};

 

print "Getting $_\n";

$ftp->get($Config{file},$localfile) or $newerr=1;

push @ERRORS, "Couldn't get $Config{file} $!\n" if $newerr;

myerr() if $newerr;

$ftp->quit if $newerr;

print "Got file\n";

 

 

$ftp->quit;

 

 

sub myerr {

print "Error: \n";

print @ERRORS;

exit 0;

}

 

 

sub Usage {

 

my ( $ScriptName ) = ( $0 =~ m#([^\\/]+)$# );

my $UnderLine = "-" x length( $ScriptName );

print << "EOT";

 

$ScriptName

$UnderLine

 

this script gets a specific file via ftp

 

Syntax:

$0 [-help] -f <file> -p <pass>

 

-f <file>......name of file to get

-p <pass>......password

 

-help............shows this page

 

Example:

$0 -f test.txt -p password

 

© 2004 by Lennart Freyberg (lennu\@lennu.org)

 

EOT

}

 

-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------8<-------

Link zu diesem Kommentar

hab die lösung.....

echo off

set /P SI="Gib Bitte den Namen der Datei an "

:%SI%

:Echo %SI%

 

echo open xxxx >ftp1.txt

echo user >>ftp1.txt

echo userxxx >>ftp1.txt

echo pwxxx >>ftp1.txt

echo lcd c:\test >>ftp1.txt

echo cd .. >>ftp1.txt

echo cd .. >>ftp1.txt

echo cd .. >>ftp1.txt

echo cd share/ag/SicherungPP >>ftp1.txt

echo get %si% >>ftp1.txt

echo bye >>ftp1.txt

ftp -n -s:ftp1.txt

pause

bei dem aufruf des ftp sollte -n eingegeben werden um sich dann mit user anzumelden.........

 

danke für die hilfe

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...