Index erstellen und diesen per ftp hochladen (Batch)
Hallo ihr Experten!!!
Ich habe gerade ein kleines edv-technisches Problem und ich hoffe, ihr könnt mir weiterhelfen ;)
Also ich möchte gerne eine Datei schreiben, die den Inhalt (bzw. die Ordnerstruktur) eines bestimmten Verzeichnisses erhält. So weit so gut, das klappt wunderbar.
Jetzt möchte ich das ganze via ftp hochladen. Wenn ich das über cmd mache, funktioniert das wunderbar. Wenn ich jedoch die gleichen (!!!) Befehle in eine Batch-Datei schreibe und diese ausführe, hängt die Batchdatei bei "ftp". Ich hoffe, ihr könnt mir das so einfach wie möglich erklären, denn ich hatte mit Batch noch nie was zu tun und konnte nichts finden, warum das bei mir hängt ... ihr wisst das sicher!!! Hier die Batch:
@echo off
D:
cd\Arbeits\Verzeichnis\
dir/s >blabla.txt
ftp (Hier bleibt die Batch stehen!!!)
open XXX.XXX.XXX
YYY (username)
YYY (passwort)
lcd D:\Arbeits\Verzeichnis
cd aloha (ftp-Verzeichnis)
put blabla.txt
bye
del blabla.txt
mfg Mister
Antwort schreiben
Antwort 2 von Mister vom 05.02.2020, 12:49 Options
So
Danke für deine Antwort. Aber die ftp Kommandos kenne ich schon (halt nur die, die ich für dieses Projekt brauche) ;)
So. Ich bin nun soweit, dass ich 2 Dateien erstellt habe. Eine mit dem eigentlichen Script, die andere mit den ftp-Daten drinnen (Also Benutzername, Passwort etc.). Ich erhalte jetzt jedoch immer die Meldung "Fehler beim öffnen der Scriptdatei". Im Folgenden habe ich nochmal den code des ganzen "Projekts" reingestellt:
Batch:
@echo on
D:
cd\XXX\XXX\
dir/s >blabla.txt
ftp -n -i -s:ftpdata.ftp
del blabla.txt
pause
Ftp: (ftpdata.ftp):
open XXX.XXX.X.X
test (user)
test (pass)
hash (für was ist das ?)
asc (für was ist das?)
lcd D:\XXX\XXX (Wechsel ins Verzeichnis mit blabla.txt)
cd /aloha (Wechsel ins Verzeichnis aloha auf dem ftp)
put blabla.txt (Datei hochladen)
bye (Tschüss)
Antwort 3 von JanSchmitte vom 05.02.2020, 14:34 Options
Hallo Mister,
Deine Batch-Datei wird nicht weiter abgearbeitet, weil das Programm "ftp" auf Eingaben wartet.
Diese gibst Du - wie Du ja selbst geschrieben hast - manuell ein, allerdings dann nicht mehr in das Programm "cmd", sondern in das Programm "ftp" (achte mal auf den Schriftzug VOR dem >)...
Das kannst Du so nicht mit einer Batch-Datei realisieren...
Ich habe drei Alternativen für Dich:
- Guck, ob sich das Programm "ftp" mit Parametern aufrufen lässt. Falls ja, dann kannst Du die Befehle per Parameter übergeben
- Du nimmst ein anderes Programm zur Übertragung per ftp. Ich selbst habe für ähnliche Zwecke mal das Tool "psftp.exe" benutzt (Teil von Putty), das lässt sich auch per Parameter mit einer Skriptdatei "füttern"...
- Du erstellst statt der Batch-Datei ein AutoIT-Script. Damit kannst Ud beliebige Zeichenfolgen in beliebige Fenster schreiben und so die Befehle absetzen...
Das fällt mir so auf Anhieb ein...
Melde Dich mal, ob's Dir geholfen hat!
MfG, Jan
Antwort 4 von Mister vom 06.02.2020, 09:31 Options
Hallo und vielen Dank für die vielen Antworten!!!
Also von den 3 Möglichkeiten gefällt mir das mit dem Parameter am Besten. ich denke, ich habe sowas schon jetzt in dieser Batchdatei realisiert (so in etwa wie es hier http://supportnet.de/threads/1664868 steht, verbessert mich wenn es nicht so ist). Ich glaube, ich hab nur irgendwo einen klitzekleinen Fehler drinnen, der mir dann sagt: "Fehler beim Öffnen der Scriptdatei". Ich poste hier nochmal den Inhalt der beiden Dateien rein:
Batch:
@echo on
D:
cd\Arbeits\Verzeichnis\
dir/s >index.txt
ftp -n -i -s:ftpdata.ftp *
del index.txt
pause
*= Hier wird doch das mit dem Parameter gemacht? also die Datei heißt ftpdata.ftp, ist aber immer noch eine Textdatei (falls das der Fehler sein könnte ...)
Ftp:
open XXX.XXX.XXX.XXX
test
test
hash
asc
lcd D:\Arbeits\Verzeichnis\
cd /aloha
put index.txt
bye
Antwort 5 von JanSchmitte vom 06.02.2020, 09:38 Options
Ich nochmal...
In welchem Verzeichnis liegt denn Deine ftpdata.ftp?
in der Kommandozeile bist Du ja in einem bestimmten Verzeichnis, odrt wird auch nach dieser Datei gesucht...
Kannst Du im Parameter auch einen absoluten Pfad angeben? Also
ftp -n -i -s:C:\Pfad\zur\ftpdata.ftp
MfG, Jan
Antwort 6 von Mister vom 06.02.2020, 10:06 Options
Hi
Also ich habe beide Dateien momentan auf dem Desktop liegen. Auch das Angeben eines absoluten Pfades bringt irgendwie nix ;(
mfg Mister
Antwort 7 von JanSchmitte vom 06.02.2020, 10:09 Options
Es kann sein, daß die Kommandozeile Probleme mit Leerzeichen im Pfad hat...
Da der Desktop irgendwo im Ordner "Dokumente und Einstellungen" liegt, würde ich das als Fehlerquelle vermuten.
Leg mal beide Dateien direkt auf eine Festplatte, zumindest aber in einen Pfad ohne Leerzeichen und versuch's nochmal.
MfG, Jan
Antwort 8 von Mister vom 06.02.2020, 10:58 Options
Hey
Hab ich probiert, aber immer noch der selbe Fehler *heul*
Kann es denn sein, dass irgendwas mit der ftpdata net stimmt ? Weil er ja sagt Fehler beim Öffnen der Scriptdatei ... also er weiß dass es ein Script gibt, kann es aber net so richtig verarbeiten ...
mfg Mister
Antwort 9 von JanSchmitte vom 06.02.2020, 11:04 Options
Ich verstehe die Fehlermeldung eher so, daß er die Skript-Datei an sich nicht öffnen kann...
Gib doch mal spassehalber einen vollkommen anderen Dateinamen an... Ich denke, Du bekommst dann die gleiche Fehlermeldung.
Ansonsten versuch mal, die Skriptdatei quasi stückchenweise auszuführen. Fang mit einer Datei an, in der nur die erste Zeile steht. Wenn das klappt, füge die zweite Zeile hinzu etc...
So kriegst Du wenigstens raus, wo der Fehler liegt...
MfG, Jan
Antwort 10 von Mister vom 06.02.2020, 11:20 Options
Hi
Okay .. ich habe es getestet .. du hattest Recht .. ich hab irgendne Schrottdatei genommen und diese als "ftp-Datei" deklariert .. selber Fehler.
Wie bekommen wir jetzt hin, dass diese Scriptdatei geöffnet wird? was ist an ihr falsch ?
mfg Mister
Antwort 11 von JanSchmitte vom 06.02.2020, 11:30 Options
Nein, ich meinte das etwas anders.
Gib als Skriptdatei mal einfach eine NICHT EXISTIERENDE Datei an...
Bei mir hatte ich gerade dann den von Dir beschriebenen Fehler
Zitat:
Fehler beim Öffnen der Skripdatei
Ich habe es bei mir gerade testweise geschafft, eine Skriptdatei zu öffnen...
Du musst in der Batch-Datei VOR Aufruf des Programms "ftp" in den Ordner wechseln, in dem diese Skriptdatei liegt...
Poste doch mal bitte Deine Batch-Datei (vor allem die verwendeten Pfade) und die Ordnerstruktur 'drumherum'...
MfG, Jan
Antwort 12 von Mister vom 06.02.2020, 13:16 Options
Hallo
Gute Nachrichten: Das Script funktioniert (fast). Es hängt jedoch an der Stelle, wo ich im ftp script sag, wo es die Datei finden kann (also das lokale Verzeichnis ...)
hier die ftp-Datei:
open 192.168.2.101
USER abcdefg
abcdefg
cd /aloha (Serververzeichnis)
LCD D:\testordner\ (hier klappt das nicht ... Datei nicht gefunden ...)
put index.txt
bye
mfg Mister
Antwort 13 von Mister vom 06.02.2020, 13:32 Options
Okay zur Ergänzung doch noch die Ordnerstruktur:
Desktop: Batchdatei (also Laufwerk C)
D: testordner (hier wird die index.txt reinerstellt)
D: scripts (hier liegt die ftpdata.ftp)
FTP:
open 192.168.2.101
USER abcdefg
abcdefg
cd /aloha
LCD D:\testordner\
put index.txt
bye
Batch:
@echo on
D:
cd\testordner\
dir/s >index.txt
cd\scripts\
ftp -n -i -s:ftpdata.ftp
cd\testordner\
del index.txt
pause
Antwort 14 von JanSchmitte vom 06.02.2020, 13:50 Options
Lass beim Ordnerwechsel den abschliessenden Schrägstrich weg...
Bei mir klappt's dann.
MfG, Jan
Antwort 15 von Mister vom 06.02.2020, 13:57 Options
Hallo
Genau das wollte ich gerade schreiben ... Jetzt klappt alles ... vielen vielen Dank und noch einen schönen Tag ;)
mfg Mister