Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

FTP Kommandos automatisieren

Mitglied: ooAlbert

ooAlbert (Level 1) - Jetzt verbinden

17.07.2007, aktualisiert 16:43 Uhr, 5759 Aufrufe, 8 Kommentare

Hi,

ich möchte von einem FTP diverse Dateien auf meinen Lokalen Rechner kopieren. Deshalb habe ich mir folgende Batch geschreiben:

FTP.bat
01.
@ECHO OFF 
02.
START /MIN /WAIT ftp.exe -n -i -s:ftp00.txt
ftp00.txt
01.
OPEN Host 
02.
USER name PW 
03.
Binary 
04.
CD "pdf" 
05.
LCD "G:\pdf" 
06.
MGET "*.pdf" 
07.
 
08.
ASCII 
09.
CD "dat" 
10.
LCD "G:\dat" 
11.
 
12.
MET "*.dat"  
13.
 
14.
QUIT
Das funktioniert soweit auch, jedoch bräuchte ich noch eine möglichkeit das jeweil nur die aktuellsten dateien geladenw erden oder das MGET hat nichts überschreibt.

Hat da wer eine Idee?
Mitglied: bastla
17.07.2007 um 11:48 Uhr
Hallo ooAlbert!

Eine Q&D-Lösung wäre wohl, ein lokales "Temp"-Verzeichnis zu verwenden und von dort die nicht im Zielverzeichnis existierenden Dateien zu verschieben sowie den Rest zu löschen, also zb im ftp-Script
01.
... 
02.
LCD G:\ftpTemp\pdf 
03.
...
und im Batch dann
01.
for %%i in (G:\ftpTemp\pdf\*.pdf) do if not exist "G:\pdf\%%~nxi" move "%%i" G:\pdf\  
02.
del G:\ftpTemp\pdf\*.pdf
Woran erkennt man eigentlich die "aktuellsten" Dateien?

Grüße
bastla
Bitte warten ..
Mitglied: ooAlbert
17.07.2007 um 12:49 Uhr
man erkennt die nur daran, das diese eben noch nicht im zielverzeichnis sind bzw. haben die allein eine fortlaufende nummer, bsp. 82326199.pdf, 82326200.pdf, ...

außerdem hab ich festgestellt, das jede 50ste Datei mit korrektem namen aber mit 0byte angelegt wird. Diese sind dann natürlich defekt, auf dem server sind sie jedoch fehlerfrei. Muß man da noch irgendwelche puffer anlegen oder sowas?

mal anders gefragt:
kann ich nicht die letze datei im lokalen verzeichnis auslesen lassen und dann nach der auf dem ftp suchen? dann hätte der doch den einsprung punkt.
Bitte warten ..
Mitglied: bastla
17.07.2007 um 13:55 Uhr
Hallo ooAlbert!

Muß man da noch irgendwelche puffer anlegen oder sowas?
Dazu kann ich leider nichts sagen.

... haben die allein eine fortlaufende nummer ...
Dann könntest Du ja vielleicht das MGET auf zB "8*.pdf" beschränken ...

Grüße
bastla
Bitte warten ..
Mitglied: ooAlbert
17.07.2007 um 14:22 Uhr
hm, wie durchsuch ich denn das lokale verzeichnis um die letze datei darin zu finden? dann bräuchte man ja nur noch die nummer um eins erhöhen und hätte die aktuelle datei. Mget würde ja dann von dort bis zur aller aktuellsten alles rüberschieben und den rest unbehelligt lassen.
Bitte warten ..
Mitglied: bastla
17.07.2007 um 14:43 Uhr
Hallo ooAlbert!

Etwa so (nach Datum / Uhrzeit):
01.
@echo off & setlocal 
02.
set Letzte= 
03.
for /f "delims=" %%i in ('dir /b /od G:\pdf\*.pdf') do set "Letzte=%%i" 
04.
if not defined Letzte echo Keine Datei gefunden! & goto :eof 
05.
echo %Letzte%
Wenn Du nach der höchsten fortlaufenden Nummer suchst, statt "/od" ein "/on" (damit wird nach Namen sortiert) verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: ooAlbert
17.07.2007 um 15:10 Uhr
er ließt jetzt die richtige datei aus kann man eigentlich das "*.pdf" nicht durch eine Variable ersetzen? ich habs mit %Datei% und "%Datei%" versucht aber es ging nicht.

achso und nochwas... wie bekomm ich denn die gewonnene datei in die TXT in der die ftp commandos stehen??
Bitte warten ..
Mitglied: bastla
17.07.2007 um 15:42 Uhr
Hallo ooAlbert!

kann man eigentlich das "*.pdf" nicht durch eine Variable ersetzen?
Kann man natürlich - allerdings nehme ich an, dass Du damit mehrere Dateitypen abfragen und deren jeweilige Nummer erhöhen willst. Dazu muss sichergestellt sein, dass jede Datei nach dem gleichen Schema benannt ist und der Name also nur aus einer Nummer und dem jeweiligen Dateityp besteht. Wenn dem so ist, sollte das etwa so gehen:
01.
@echo off & setlocal 
02.
call :GetNext pdf 
03.
set "Npdf=%Next%.pdf" 
04.
 
05.
call :GetNext dat 
06.
set "Ndat=%Next%.dat" 
07.
 
08.
... 
09.
... in ftp00.txt schreiben (siehe unten) 
10.
... 
11.
 
12.
START /MIN /WAIT ftp.exe -n -i -s:ftp00.txt 
13.
goto :eof 
14.
 
15.
:GetNext 
16.
set Next= 
17.
for /f "delims=" %%i in ('dir /b /on G:\%1\*.%1') do set "Next=%%~ni" 
18.
If defined Next set /a Next+=1 & goto :eof 
19.
echo Keine *.%1 gefunden! 
20.
set Next=9999999999 
21.
goto :eof
Das Erstellen der "ftp00.txt" mit den entsprechenden dynamischen Inhalten könntest Du mit einer Serie von "echo"-Befehlen durchführen, also etwa:
01.
set "ftpScript=G:\ftp00,txt" 
02.
echo OPEN Host>"%fptScript%" 
03.
echo USER name PW>>"%fptScript%" 
04.
echo Binary>>"%fptScript%" 
05.
echo CD "pdf">>"%fptScript%" 
06.
echo LCD "G:\pdf">>"%fptScript%" 
07.
echo MGET "%Npdf%">>"%fptScript%" 
08.
...
Beim ersten Mal nur ein Umleitungszeichen (">") verwenden, damit die alte "ftp00.txt" überschrieben wird, ansonsten immer ">>", damit die Zeile an die vorhandene "ftp00.txt" angefügt wird.

Grüße
bastla
Bitte warten ..
Mitglied: ooAlbert
17.07.2007 um 16:43 Uhr
hm, stimmt das ganze aus der batch in eine txt schreiben wobei ich dachte das würde man umgehen können. Es klappt zumindestens.

Jetzt muß ich nur noch überlegen wie ich einige zeichen vom dateinamen durch den stern ersetze, sonst macht mget ja keinen sinn

Das einzige was halt bleibt einige dateien werd ich immer überschreiben müssen, da ich nie genau weiß wieviele neue dazukommen und ich im ftp ja nicht sagen von datei 1111 bis datei 1155. sondern 11* habe das dann bis ende.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Erklärung von DOS Kommandos
gelöst Frage von 13Stift37Batch & Shell7 Kommentare

Hallöchen :) Ich habe aus einem anderen Tread hier aus dem Forum eine funktionierende Batch Datei für meine Zwecke ...

Drucker und Scanner

ESC Kommandos an Bixolon Drucker Senden ?

gelöst Frage von dax4funDrucker und Scanner5 Kommentare

Hi, Freunde habe einen Bixolon Drucker SRP - 350 II der per usb auf COM5 ansprechbar ist wenn ich ...

Batch & Shell

Filezilla automatisieren

Frage von 132351Batch & Shell13 Kommentare

Hallo Hat es schon jemand geschafft Filezilla zu automatisieren? Die Verbindung zum FTP kann ich per Batch herstellen. Was ...

Windows 7

Powershell Kommandos ausführen als lokalen Admin

Frage von M.MarzWindows 72 Kommentare

Hallo zusammen, ich möchte gerne im Betrieb remote mit der Powershell Rechner neustarten oder bestimmte service stoppen bzw. starten. ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 5 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 16 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 16 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 16 StundenHardware11 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux23 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL18 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

LAN, WAN, Wireless
Kommunikation zwischen verschiedenen IP-Bereichen
Frage von DirkHoLAN, WAN, Wireless13 Kommentare

Hallo zusammen, von Unitymedia habe ich ein neues Modem (Connect Box) erhalten, das u.a. IPv4 aber keinen Bridge Mode ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...