mrsonei6
Goto Top

datei die per put befehl hochgeladen wird darf andere datei nicht überschreiben

Date per FTP uploade die schon exestiert auf FTP nicht überschreiben sondern as v001 speichern

Unten hab ich die lösung ohne FTP scrip gepostet.

NUN zur Problembeschreibung:

Ich habe folgende dateien.

1x ftpupload.bat in der ich die FTP.txt aufrufe sonst nichts
1x ftp.txt mit folgendem inhalt

open 129.168.1.1
FTPUSER
FTPPASSWORT
cd FTPOrdner
bin
lcd c:\FTP
put test.pdf
diconnect
quit

Es kann sein das es kleine abweichungen gibt da ich das script auf arbeit habe.

So NUN zu meiner frage wie kann ich in der ftp.txt sagen das er, wenn die test.pdf schon existiert auf dem FTP Server im Ordner "FTPOrdner" diese pdf nicht überschreibt,
sondern eine datei test.v001 oder test.002 usw draus macht?

Ist das möglich?

bitte um hilfe!

LG
Stefan

Content-ID: 120626

Url: https://administrator.de/contentid/120626

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

empreality
empreality 16.07.2009 um 14:37:23 Uhr
Goto Top
Mit den Befehlen eines Standard-FTP-Servers geht das nicht.
Müsstest dir erst eine Dateiliste abfragen und auswerten und dann entsprechend handeln.
60730
60730 16.07.2009 um 18:32:50 Uhr
Goto Top
Servus,

heute morgen hab ich so einen ähnlichen Buchstabensalat woanders schonmal gelesen.

Bitte gebe dir etwas mehr Mühe...

Zitat von @empreality:
Mit den Befehlen eines Standard-FTP-Servers geht das nicht.....

ganz genau, denn man braucht die std. Befehle vom Client face-wink

Wenn in der config ini ein ls gefolgt von einem quit drin steht - was steht dann am Ende in der ftp.log?

ftpupload.bat "der schnippsel da unten">c:\log\ftp.log

btw: ich hab dir min. noch ein s für den disconnect spendiert face-wink
open 129.168.1.1
FTPUSER
FTPPASSWORT
cd FTPOrdner
ls
disconnect
quit

Den Rest kriegst du selber hin face-wink

btw: ein noch simpleres "verbieten" von Änderungsrechten an bestehenden Dateien ist wahrscheinlich auch kein std. FTP Server Befehl?

Gruß
MrSonei6
MrSonei6 16.07.2009 um 21:28:06 Uhr
Goto Top
? jetzt weiß ich ned ob du mich veräpeln willst?

Ich du postest das skript welches in die ftp.txt gehört, das hab ich doch schon oben gepostet, und es funktioniert.
;)

Wollt nur wissen ob man mit den befehl mput oder iwe der geht das überschreiben verhindern kann?
60730
60730 16.07.2009 um 21:51:14 Uhr
Goto Top
Zitat von @MrSonei6:
? jetzt weiß ich ned ob du mich veräpeln willst?
Ned schreibt man zwar mit t und z am Ende - aber nein..
Ich du postest das skript welches in die ftp.txt gehört, das hab ich doch schon oben gepostet, und es funktioniert.
;)

Ähh deine Tüte Deutsch ist ausgelaufen, ick värsdeh dir so slechd face-wink

Wollt nur wissen ob man mit den befehl mput oder iwe der geht das überschreiben verhindern kann?

Nochmal laaaaaangsam ala Rudolf the notrenntier Scharpoing..


  • Mein "Script" ist identsch - mit deiner Textdatei?
Nur weil ich es ordentlich in Codeblöcke schreibe wird aus einem txt ein Script?

  • Und wir beide rufen das Script (einzeilerchen) auch identisch auf?
  • deswegen haben wir auch beide ein Logfile in dem via ls der Inhalt des Ordners steht und wir so erkennen können, ob eine Datei da ist?

Sorry ...
Geb dir Mühe - hab ich wohl beim Buchstabensalat nicht explizit genug angedeutet....

Wenn du dir ähnlich viel Mühe gegeben hast, deinen FTP Server einzurichten, wie hier Fragen zu stellen, dann ist das nicht gut..
MrSonei6
MrSonei6 16.07.2009 um 23:01:43 Uhr
Goto Top
Sorry für meine vielen Schreibfehler,

Ich hab mir deinen Tip mit "ls" mal näher angeschaut

ich lasse es in eine txt reinschreiben.

hier die Datei

open 192.168.xxx.39
xxxxx
xxxxxx
ls
cd ftp
dir /ftp C:\FTP\i.txt
disconnect 192.168.xxx.39


In der text datei steht dann dies hier:

07-16-09 10:50PM 20 1.pdf
07-16-09 10:47PM 0 2.pdf
07-16-09 10:55PM 0 3.pdf


und wie kann man nun verhindern das eine datei überschrieben wird?
MrSonei6
MrSonei6 17.07.2009 um 08:47:05 Uhr
Goto Top
ein weiter Komentar


Kommentar TsukiSan schreibt am 17.07.2009 um 08:01:09 Uhr:
also hier wäre eine Idee, wie man mit Batch
Dateien kopiert und falls vorhanden einfach eine
"Vorzahl" verpaßt, die weiter hochgezählt wird.

Ist eine Idee und du kannst dies sicher für dich ausbauen.

Quelltext | in den Speicher kopieren | drucken
set "Zaehler=0" set "Pfad=D:\" set "File=D:\test.pdf" if not exist %File% goto Kopieren Set "File=Test.pdf" :Weiter set /a Zaehler+=1 if exist %Pfad%%Zaehler%%File% goto Weiter ren D:\test.pdf %Zaehler%%File% :Kopieren set "File=D:\" copy C:\test.pdf %file%
01.


set "Zaehler=0"
set "Pfad=D:\"
set "File=D:\test.pdf"
if not exist %File% goto Kopieren
Set "File=Test.pdf"
:Weiter
set /a Zaehler+=1
if exist %Pfad%%Zaehler%%File% goto Weiter
ren D:\test.pdf %Zaehler%%File%
:Kopieren
set "File=D:\"
copy C:\test.pdf %file%

Gruß
Tsuki


Tsuki schreibst in der dritten Zeile

set "File=D:\test.pdf"

Mein Problem ist ja das ich das Skript auf den FTP ausführen lassen muss oder?
Tsukis Skript funktioniert nur wenn es sich um einen Lokalen Ordner handelt oder?
Oder kann ich das irgendwie kombinieren mit dem "ls befehl"
TsukiSan
TsukiSan 17.07.2009 um 09:12:08 Uhr
Goto Top
Hi,

ja mein Schnipsel ist nur als Gedankenstütze gedacht und bezieht sich in diesem Fall auf einen lokalen Ordner/lokalen PC.
Wenn man aber als Pfad:
set "OrigFile=\\Computer\Freigabeordner\test.pdf"  
set "AblageFile=C:\Backup\"  
::usw.
eingibt, kann man Dateien übers Netz kopieren und die Backupdatei "hochzählen" lassen, sodaß diese nicht überschrieben werden.

Gruß
Tsuki
MrSonei6
MrSonei6 17.07.2009 um 09:18:02 Uhr
Goto Top
Ja bei nem Netzwerk Pfad würd das gehen, bei einen FTP Server bei deim man sich per User und Passwort anmelden muss nicht!

Oben wurde mir der "ls" Befehl nahe gelegt, mit dem hab ich auch schon ein Inhaltsverzeichniss vom FTP Ordner erstellt.
Nun müsste ich aus der txt Datei wieder auslesen ob die Datei schon in dieser vorhanden ist und wenn ja hochzählen.
Aber in diesem FTP Skript scheinen die normalen Befehle nicht zu funktionieren!
TsukiSan
TsukiSan 17.07.2009 um 09:37:12 Uhr
Goto Top
Joh,
Timo schreibt doch schon, wie man den FTP öffnet und
den User und das Passwort übermittelt.
Dann steht die Leitung und man gibt die richtige Pfadadresse an.
Bsp:
FTPs:\\129.168.1.1\Freigabepfad\test.pdf

dann müßte es auch mittels Batch funktionieren.

Gruß
Tsuki
MrSonei6
MrSonei6 17.07.2009 um 15:13:25 Uhr
Goto Top
Ja schon aber wie kann ich deine Befehle

set "OrigFile=\\Computer\Freigabeordner\test.pdf"
set "AblageFile=C:\Backup\"

in der Datei FTP.txt die von der bat aufrufen?

nach dem ich in der TXT sagt "put Datei"
Ist es ja schon zu süät da wurde die datei schon hochgeladen und ersetzt!