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

Frage Entwicklung Batch & Shell

FTP Kommandos automatisieren

Mitglied: ooAlbert

ooAlbert (Level 1) - Jetzt verbinden

17.07.2007, aktualisiert 16:43 Uhr, 5746 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
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 6 StundenRouter & Routing2 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 12 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 17 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...