Zufällige Dateinamenwahl pei FTP-Upload per Batch?

Hi LeuZ,
Ich habe ein Problem:
Also, ich habe 2 Dateien (upload.bat, upload.ftp)
Inhalt der upload.bat:
Code:
ftp.exe -v -s:upload.ftp
Inhalt der upload.ftp:
Code:
open *********.de
(Benutzername)
(Passwort)
put pictures.dll %datum%-%zeit%-upload.gf
quit

Ich habe erst versucht die Datei mit Datum und Uhrzeit im Dateinamen hochladen zu lassen, aber das ging nicht (
Code:
put pictures.dll %datum%-%zeit%-upload.gf
)... Ich muss es aber unbedingt so hinkriegen, das das Script sich automatisch einen Zufälligen Dateinamen wählt - Denn das Script ist Teil eines Programmes, welches nach der Eingabe von einigen Daten in ein Formular dieses Formular automatisch auf den Server hochlädt. Das Problem ist nur, das alle Formulare den selben Dateinamen haben und also immer wieder überschrieben werden würden!
Das darf aber nicht passieren weil ich alle Formulare brauche!!
Ich versuche das jetzt schon den ganzen Tag hinzukriegen und es klappt einfach nicht :rolleyes: ... Kann mir irgendwer von euch helfen?
 
Am besten wäre es wohl, wenn man die upload.ftp jedes mal mittels Batch neu erstellt. Dabei kann man nämlich auch auf die Umgebungsvariablen zugreifen.
 
Super Idee, nur leider kenne ich mich nicht so damit aus und weiß nicht, wie ich das realisieren sollte...

Ích habe soviel verstanden, das die upload.bat die upload.ftp bei jedem Upload selbst neu erstellen soll nur ich habe kp wie man das coden soll... Du vllt?
Ich muss das unbedingt haben sonst kann ich ein ganzes Projekt vergessen!

Weißt du, wie man das Coden müsste?
 
echo in Verbindung mit den Pipe-Operatoren > und >> sollten hier weiterhelfen.

Stellt man einem Befehl ein >dateiname nach, so wird die Ausgabe dieses Befehls in die Datei namens dateiname geschrieben. Existiert die Datei noch nicht, wird sie erstellt. Existiert sie bereits, wird ihr gesamter Inhalt verworfen.

Mit einem nachgestellten >>dateiname erreicht man, dass wiederum die Ausgabe in die Datei geschrieben wird, allerdings wird der alte Inhalt nicht verworfen, sondern die neuen Daten einfach angehängt.

Somit würde sich bspw. folgende Lösung anbieten:
Code:
@echo off

echo open example.com> upload.ftp
echo username>> upload.ftp
echo password>> upload.ftp
echo binary>> upload.ftp
echo put pictures.dll %date%-%time%-%random%-upload.gf>> upload.ftp
echo quit>> upload.ftp

ftp.exe -v -s:upload.ftp

del upload.ftp
 
Hallo, Matthias.

Warum hast du dem Code von moonlightshadow noch
den binary hinzugefügt? Was bedeutet binary bzw. was bewirkt er?

Die zweite Befehlszeile verstehe ich auch nicht so ganz, kannst du sie mir erklären?

Code:
echo binary>> upload.ftp
echo put pictures.dll %date%-%time%-%random%-upload.gf>> upload.ftp
 
Hallo,

chrysler hat gesagt.:
Warum hast du dem Code von moonlightshadow noch
den binary hinzugefügt? Was bedeutet binary bzw. was bewirkt er?
binary aktiviert den Übertragungsmodus für Binärdaten. Damit wird sichergestellt, dass die Datei auch zwischen Systemen mit unterschiedlicher Wortlänge korrekt transferiert werden kann.

Die zweite Befehlszeile verstehe ich auch nicht so ganz, kannst du sie mir erklären?
Hier wird einfach die Anweisung, die Date pictures.dll hochzuladen, in die upload.ftp geschrieben. Der Dateiname auf dem Server setzt sich dabei aus einigen vorbesetzten Umgebungsvariablen zusammen:
  • %date% wird durch das aktuelle Datum ersetzt,
  • %time% durch die aktuelle Zeit und
  • %random% durch eine (Pseudo-)Zufallszahl

Grüße,
Matthias
 
Ich habe das
Code:
%datum%-%zeit%-Datei.txt
bennenen auch probiert, es klappt aber nicht.
Mein Quelltext:
Code:
ECHO OFF
CLS
ECHO.
ECHO Text>>%Time%.txt

beim DATUM funktioniert das:
Code:
ECHO OFF
CLS
ECHO.
ECHO Text>>%DATE%.txt

Woran liegt das und wie kann ich das Beispiel von oben anwenden?
 

Neue Beiträge

Zurück