ridibundus
Goto Top

Mit batch eine datei umbenennen und verschieben per zeitplan

Guten Tag alle zusammen, ich verzweifle langsam

Ich will eine FTP-Datei so umändern, dass sie mit Datum versehen ist und in einen unterordner gespeichert wird

Beispiel:

Name der Datei "25682516.44820100913225518"

Soll heißen "201009141600.inv"

sprich, jahreszahl, monat, tag, uhrzeit

kann mir bitte jmd. weiterhelfen? danke schön

Content-ID: 150996

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

Ausgedruckt am: 26.11.2024 um 05:11 Uhr

60730
60730 14.09.2010, aktualisiert am 18.10.2012 um 18:43:27 Uhr
Goto Top
Auch dir ein Hallo und willkommen im Club.

Wenn du bitte deine Frage so stellst, dass wir das auch nachvollziehen können, was du vorhast, dann wird auch ein Schuh draus face-wink

Eine xbliebige Datei umbenennen und dabei verschieben ist ja kein Problem, aber welche solls denn werden?
Die einzigste? das wäre ja zu leicht - die letzte auch nicht viel schwerer.

Und das mit dem Datum kannst du dir ja gerne auch durchlesen.

Gruß
ridibundus
ridibundus 14.09.2010 um 11:12:44 Uhr
Goto Top
es ist halt eine datenbank von wo aus jede nacht quittungsdateien gesendet werden, damit wir auch wissen, welche das sind, wollten wir das jetzt umändern und ich wurde dazu verdonnert, die sollen halt per ftp vom edimat-server abgeholt werden und in den ordner xy geschickt werden, weiß selber nicht wie ich das genau beschreiben soll
ridibundus
ridibundus 14.09.2010 um 12:08:30 Uhr
Goto Top
so quasi eine dynamische datumsermittlung die automatisch läuft und jedesmal eine copy in nem anderen ordner ablegt
60730
60730 14.09.2010 um 13:05:58 Uhr
Goto Top
Moin,
also "schlauer" bin ich jetzt immer noch nicht und dass sich außer mir noch kein anderer gemeldet hat dürfte daran liegen dass die potentiell wissenden warten, was du haben willst.

  • Szenario 1)
  • Der Dateiname der quelle ist immer der gleiche

  • Szenario 2)
  • Der Dateiname der quelle ist nicht der gleiche und die benamsung kann irgendwie lauten

  • Szenario 3)
  • Beim herunterladen wird das Datum der quelldatei übernommen

  • Szenario 4)
  • Beim herunterladen wird das Datum des kopierens in die zieldatei übernommen

  • Szenario 5)
  • Du kannst "freie" Software benutzen

  • Szenario 6)
  • Du mußt Boardmizttel von WinBlows benutzen

  • Szenario 7)
  • irgendeine kombination von 1-6.

Für jede Lösung haben wir Probleme - nur welche Probleme sollen wir für deinen Fall lösen?
so quasi eine dynamische datumsermittlung die automatisch läuft und jedesmal eine copy in nem anderen ordner ablegt

Da hab ich dir quasi ja schon vorab des Bibers sein Tut verlinkt.

Gruß
ridibundus
ridibundus 14.09.2010 um 13:25:48 Uhr
Goto Top
ich lasse mir diesmal ein paar minuten länger zeit für meine antwort...

also ich habe vor mir einen batchscript, eine vbscript script file und in einem anderen ordner dateien, die als beispiel jetzt so heißen "25682516.44820100913225518" und jede datei heißt anders, sieht aber so vom aufbau her aus.

mein anliegen ist jetzt, gibt es eine möglichkeit, dass ich diese datein, mithilfe von ein paar befehlen so ändern kann, dass die dateien gleich unter einen anderen namen und format gespeichert werden und davon eine kopie in einem anderen ordner erstellt? (namenbeispiel: 201009150600.inv)

hier nochmal die datei

@echo off

rem Variablen festlegen
set DATUM=%DATE%
set ZEIT=%TIME%


rem Überprüfen ob die Netzwerklaufwerke verbunden sind
if not exist t:\. net use t: \\xxx.xxx.xxx.xxx\xxx /USER:%USERNAME% /PERSISTENT:YES

if not exist t:\. goto FEHLER
t:
rem Start Logbuch
Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log
Echo Start Faktura Übergabe am %Datum% um %Zeit% >>t:\logbuch\fakt\srvwws01.log
Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log

Echo Kopieren der Faktura pro Mandant per ftp >>t:\logbuch\fakt\srvwws01.log
ftp -n -s:t:\skripts\fakt\srvwws01.ftp >>t:\logbuch\fakt\srvwws01.log

Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log
goto ENDE

:FEHLER
Echo F E H L E R ! >>t:\logbuch\fakt\srvwws01.log
Echo Laufwerk t: nicht gemappt! >>t:\logbuch\fakt\srvwws01.log

:ENDE
set DATUM=%DATE%
set ZEIT=%TIME%
Echo Faktura Übergabe am %Datum% um %Zeit% >>t:\logbuch\fakt\srvwws01.log
Echo Programmende! >>t:\logbuch\fakt\srvwws01.log
Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log
60730
60730 14.09.2010, aktualisiert am 18.10.2012 um 18:43:28 Uhr
Goto Top
Zitat von @ridibundus:
ich lasse mir diesmal ein paar minuten länger zeit für meine antwort...
Na dass ist doch mal ein Ansatz face-wink

also ich habe vor mir einen batchscript, eine vbscript script file und in einem anderen ordner dateien, die als beispiel jetzt so
heißen "25682516.44820100913225518" und jede datei heißt anders, sieht aber so vom aufbau her aus.

mein anliegen ist jetzt, gibt es eine möglichkeit, dass ich diese datein, mithilfe von ein paar befehlen so ändern kann,
dass die dateien gleich unter einen anderen namen und format gespeichert werden und davon eine kopie in einem anderen ordner
erstellt? (namenbeispiel: 201009150600.inv)

hier nochmal die datei
ich edietere das gleich noch, aber zum schauen hätt ich (und die anderen) es gerne so....

 rem testbatche niemals nie nicht mit @echo off
 
rem Variablen festlegen
set DATUM=%DATE%
set ZEIT=%TIME%
 
 
rem Überprüfen ob die Netzwerklaufwerke verbunden sind
rem und was passiert, wenn t ein anderer Share ist?
if exist t:\ if not exist t:\logbuch net use t: /de /y
if not exist t:\logbuch net use t: \\xxx.xxx.xxx.xxx\xxx /USER:%USERNAME% /PERSISTENT:YES
  
if not exist t:\. goto FEHLER
cd /d t:
rem Start Logbuch
Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log
Echo Start Faktura Übergabe am %Datum% um %Zeit% 	                               >>t:\logbuch\fakt\srvwws01.log
Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log			 			  
 
Echo Kopieren der Faktura pro Mandant per ftp 		                                       >>t:\logbuch\fakt\srvwws01.log
ftp -n -s:t:\skripts\fakt\srvwws01.ftp 			                                                       >>t:\logbuch\fakt\srvwws01.log
 
Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log
goto ENDE
 
:FEHLER
Echo F E H L E R ! 					                                                                >>t:\logbuch\fakt\srvwws01.log	
Echo Laufwerk t: nicht gemappt! 			                                                        >>t:\logbuch\fakt\srvwws01.log

:ENDE
set DATUM=%DATE%
set ZEIT=%TIME%
Echo Faktura Übergabe am %Datum% um %Zeit% 		                               >>t:\logbuch\fakt\srvwws01.log
Echo Programmende! 					                                                       >>t:\logbuch\fakt\srvwws01.log
Echo _____________________________________________________ >>t:\logbuch\fakt\srvwws01.log
 

Und das wichtigste ist doch die
ftp -n -s:t:\skripts\fakt\srvwws01.ftp
wo ist die und wie wird die erstellt?
Das "kosmische Logfiledingenskirchen kann ja "nix" interessantes (was der Lösung nahe kommt).
Hast du des Bibers Tut eigentlich schon komplett durchgeackert?
Oder in unsere Suche FTP Batch script datum eingegeben?
ridibundus
ridibundus 14.09.2010 um 13:48:16 Uhr
Goto Top
werd ich nächste mal berücksichtigen, wenn ich es hinbekomme xD aber da fuchs ich mich selber durch danke face-smile
ridibundus
ridibundus 14.09.2010 um 13:53:34 Uhr
Goto Top
wo die erstellt wurde weiß ich nicht, das hat ein alter mitarbeiter gemacht

und ja ich hab schon bibers durchgeackert, komme aber nicht weiter

ftp batch script datum hab ich auch schon durch, find da auch net das passende
60730
60730 14.09.2010 um 20:45:09 Uhr
Goto Top
ok, allervorletzter Versuch...
Zitat von @ridibundus:
wo die erstellt wurde weiß ich nicht, das hat ein alter mitarbeiter gemacht
dann poste die doch und ein "ls" vom FTP Server - gerne anonymisiert und ein ls vom FTP Server bitte.

das ls kannst du u.a so bekommen:
open ftpserver.suffix
User
Passwd
bin
ls -ltr C:\ftpdir.txt

bye
Wichtig ist nur, daass du uns diese Datei, die da rauskommst "erklärst" - morgen ist die da weg und dafür die da da (blabla)

und ja ich hab schon bibers durchgeackert, komme aber nicht weiter
Dann wirds aber kompliziert, denn (nicht nur) da hat er sich erfolgreich Mühe gegeben.

ftp batch script datum hab ich auch schon durch, find da auch net das passende
Naja das könnte theoretisch sein, denn manche (wie du) schreiben im Titel sowas ähnliches wie:
Mit batch eine datei umbenennen und verschieben per zeitplan
Und am Ende kommt eiine Lösung ftpdownload einer Datei.

Wobei, wenn das ftpscript mal ein alter Mitarbeiter geschrieben hat und das immer noch läuft, ist die benamsung entweder statisch, oder der hats schon schlau gelöst.

Gib dann mal
  • dir /?
in eine Dosbox ein. Auf der ersten Seite siehst du dann u.a:
/A Listet Dateien mit angegebenen Attributen auf.
Attribute D Verzeichnisse R Schreibgeschützte Dateien
H Versteckte Dateien A Zu archivierende Dateien
S Systemdateien - vorangestellt kehrt die Bedeutung um
/B Einfaches Format (keine Kopfdaten, keine Zusammenfassung).
/O Gibt die Liste sortiert aus.
Folge N Name (alphabetisch) S Größe (kleinere zuerst)
E Erweiterung (alphabetisch) D Datum/Zeit (ältere zuerst)
Ergo ein dir /b /a-D /OD immer als letzte Ausgabe den Namen der zuletzt gespeicherten Datei eines Ordners.
mit
for /f %%i in ('dir /b /a-D /OD') do set "newest"="%%i"  
bekommst du aus dieser Liste eine gefüllte Variable "newest"
mit
for /f "tokens=1-3 delims=. " %%a in ('date /t') do set tag=%%a & set monat=%%b & set jahr=%%c  
bekommst du "normalerweise - siehe Bibers Tut - 3 gefüllte WaffelnVariablen tag, monat, Jahr

mit
for /f "tokens=1-3 delims=. " %%a in ('date /t') do set tag=%%a & set monat=%%b & set jahr=%%c  
for /f %%i in ('dir /b /a-D /OD') do set "newest"="%%i"  
move "%newest%" c:\backup\%jahr%-%monat%-%tag%  
bekommst du wohl das, was du willst und ich einen plagiatsvorwurf unserer Batchgurus....

Gruß
ridibundus
ridibundus 17.09.2010 um 08:52:47 Uhr
Goto Top
guten morgen,

danke für euren ganzen hilfen face-smile hab jetzt nur ein anderes problem
das umbennen klappt wunderbar, allerdings benennt der nur eine datei um

gibt es eine möglichkeit, dass der so lange sucht, bis er alle dateien umbenannt hat?

die dateien haben keine endung wie z.B. .exe sondern sind zahlen, wie ich sie oben schon beschrieben habe

hoffe ihr könnt mir auch dabei helfen face-smile

gruß ridi
60730
60730 17.09.2010 um 10:42:06 Uhr
Goto Top
Zitat von @ridibundus:
guten morgen,

danke für euren ganzen hilfen face-smile hab jetzt nur ein anderes problem
das umbennen klappt wunderbar, allerdings benennt der nur eine datei um

Moin,

bitte bitte bitte...

Du hast "irgendwas" von "uns" übernommen und es eingebaut - da vermute ich, du hast den Kram zwischen meinen Code Blöcken ganz oder teilweise übernommen.

Das das, was ich da geschrieben hat nur die letzte erzeugte Datei verändert sollte klar sein und hab ich auch so geschrieben.
Ergo ein dir /b /a-D /OD immer als letzte Ausgabe den Namen der zuletzt gespeicherten Datei eines Ordners.
es kann nur einen letzten geben

Egal obs nun so ist oder nicht - bitte schreib was du gemacht hast.
Und vor allen Dingen, was du eigentlich willst.

Und wenn wir schon soweit sind - in welchen Zeilen hat Biber überall
"HKCU\Control Panel\International"
versteckt? (Sein Tut hast du bestimmt schon so oft durch, das du es auswendig kennst)

Gruß