dipps
Goto Top

Batch Datei soll mit Dateinamen arbeiten

Batch Datei soll mit Dateinamen arbeiten

Hallo Leute,
Meine Überwachungskamera macht aller 1 Minute 1 Bild auf einem NAS speichern "\\NAS\Freigabe\Bilder"
Nun möchte ich auf einem Server eine Batchdatei laufen lassen die Mitternacht oder so alle Dateien die mit 20091125_Uhrzeit.jpg (YYYYMMDD) (Vortag!!!)beginnen in \\NAS\Freigabe\Archiv\YYYYMMDD kopiert
Leider weiss ich nicht wie man das am besten macht.
Bitte helft mir.


Habe jetzt schon Angefangen mit
@echo off
set jahr=%date:~6%
set mon=%date:~3,2%
set tag=%date:~0,2%

find l:\Bilder %jahr%%mon%%tag%* >> erg.txt

Da kommt als Ergebinss immer Datei nicht gefunden was.

Da ich im nächsten Schritt die Datei Auslesen will und die Dateien dann nach l:\Archiv\%jahr%%mon%%tag% Verschieben will

Content-ID: 130183

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

Ausgedruckt am: 26.11.2024 um 09:11 Uhr

NoBodyTadl
NoBodyTadl 25.11.2009 um 10:01:42 Uhr
Goto Top
Nur ne Frage vorweg : warum sagst du der Cam nicht das sie die Dateien direkt in nem Datumsordner speichern soll ?

\\NAS\Freigabe\Archiv\%date:~6,4%%date:~3,2%%date:~0,2%\ << als ziel in der cam software


ansonsten 2 ansätze

Mit dem Windows-Tool "robocopy" und den Parametern /mov sowie /minage wäre der erste weg

mittels vbs script wäre eine 2 variante

bei bedarf melde dich per pn

Gruß NoBody
Dipps
Dipps 25.11.2009 um 10:27:31 Uhr
Goto Top
Danke für die Antwort werde ich gleich mal versuchen. Aber der Hersteller meinte es würde nicht gehen das es die Cam selber macht.
Dipps
Dipps 25.11.2009 um 10:31:17 Uhr
Goto Top
also wenn ich es in der Camera direkt mache dann macht er nach dem speichern immer
\\server\share\Bilder\Úte:~6,4%Úte:~3,2%Úte:~0,2%\
daraus
60730
60730 25.11.2009 um 11:19:57 Uhr
Goto Top
Servus,
rem @echo off hat in einer Batch - die "probleme" macht - nichts zu suchen.....  
set jahr=%date:~6%
set mon=%date:~3,2%
set tag=%date:~0,2%

if not exist \\NAS\Freigabe\Archiv\%jahr%%mon%%tag% md  \\NAS\Freigabe\Archiv\%jahr%%mon%%tag%
move l:\Bilder\%jahr%%mon%%tag%*  \\NAS\Freigabe\Archiv\%jahr%%mon%%tag%\

@NoBodyTadl
Ps: bei bedarf melde dich per pn

Seit wann lösen wir hier "Probleme" per PN - Persönliche Nachrichten - machen wir hier nix für die allgemeinheit?
Diskussionsrichtlinien - die Regeln zu unseren Inhalten

Ps: Die Cam wird schwerlich mit den DOsbefehlen arbeiten, die uns Bill und seine Praktikanten gegeben haben.
Gruß
Dipps
Dipps 25.11.2009 um 11:37:53 Uhr
Goto Top
kannst du mir bei robocopy noch helfen????
Ich kenn mich damit nicht aus und sehe da auch gerade nicht durch.
Dipps
Dipps 25.11.2009 um 11:53:48 Uhr
Goto Top
Danke dir.
Das funktioiert auch soweit.
Geht es auch das ich vorher die Dateien auslese mir die ersten 6 zeichen anschaue sprich YYYYMMDD und dann diese Datei in den Ensprechenden Ordner kopiere?
77559
77559 25.11.2009 um 11:58:46 Uhr
Goto Top
Hallo Timo,

ich stimme dir fast Vollinhaltlich zu face-wink

Dipps schrieb was von Vortag, wenn er also alle bis auf die heutigen in entsprechende Tagesordner sortieren will, könnte da so aussehen:
@echo off
set jahr=%date:~6%
set mon=%date:~3,2%
set tag=%date:~0,2%
set "Test=Echo"  
::set "Test=" 
Pushd "L:\Bilder"  
For /F "Tokens=1,* Delims=_" %%A in (  
  'Dir /B 20*.jpg ^|findstr /V "^^%jahr%%mon%%tag%"'  
    ) Do Call :Einzeln %%A "%%A_%%B"  
POPD
Goto :eof
:Einzeln
If Not Exist "\Archiv\%1\" %Test% MD "\Archiv\%1\"  
%Test% Move %2 "\Archiv\%1\"  
Goto :Eof
:Tag
If %1 EQU %Last% goto :Eof
Set Last=%1
If Not Exist "\Archiv\%1\" %Test% MD "\Archiv\%1\"  
%Test% Move "%1_*.jpg" "\Archiv\%1\"  

Es wird nichts ausgeführt solange Zeile 6 mit den beiden Doppelpunkten auskommentiert ist. Es gibt zwei Unterroutinen :Einzeln verschiebt Datei für für Datei, :Tag macht nur einen Move und springt sofort zurück wenn der gleiche Tag nochmal kommt. Um :Tag zu nutzen muss Zeile 10 entsprechend in
    ) Do Call :Einzeln %%A "%%A_%%B"  
geändert werden.

Ungetestet
60730
60730 25.11.2009 um 12:00:56 Uhr
Goto Top
Servus,

klar geht das


rem @echo off hat in einer Batch - die "probleme" macht - nichts zu suchen.....  
set jahr=%date:~6%
set mon=%date:~3,2%
set tag=%date:~0,2%

if not exist \\NAS\Freigabe\Archiv\%jahr%%mon%%tag% md  \\NAS\Freigabe\Archiv\%jahr%%mon%%tag%
dir  l:\Bilder\%jahr%%mon%%tag%*.jpg >>bilder.txt
copy  l:\Bilder\%jahr%%mon%%tag%*  \\NAS\Freigabe\Archiv\%jahr%%mon%%tag%\

Wobei ich wahrscheinlich nicht verstanden habe - was du genau meinst.
Denn beim copy bleiben die alten Dateien ja in der Cam...
60730
60730 25.11.2009 um 12:07:40 Uhr
Goto Top
@ LotPings:

Vortag hat er aber gut versteckt - oder genauer - meine Augen müssen zum nachschleifen face-wink

ich würde das evtl. kürzer mit einer Temp. datei lösen..

call morgen.cmd
set jahr=%date:~6%
set mon=%date:~3,2%
set tag=%date:~0,2%
echo if not exist \\NAS\Freigabe\Archiv\%jahr%%mon%%tag% md  \\NAS\Freigabe\Archiv\%jahr%%mon%%tag%>morgen.cmd
echo copy l:\Bilder\%jahr%%mon%%tag%*  \\NAS\Freigabe\Archiv\%jahr%%mon%%tag%\ >>morgen.cmd
28/29.2 30/31.xx usw. ist mir zu viel schreiberei.(If else / wenn und aber)
ungetestet

Gruß
Dipps
Dipps 25.11.2009 um 13:03:56 Uhr
Goto Top
Das Script Springt bei mir nur kurz auf und schließt gleich wieder ohne etwas an den Daten zu ändern. Das von LotPings
60730
60730 25.11.2009 um 13:10:44 Uhr
Goto Top
Zitat von @Dipps:
Das Script Springt bei mir nur kurz auf und schließt gleich wieder ohne etwas an den Daten zu ändern.
  • welches?

Mein letztes Script ist ja - für Morgen gedacht - es muß einmalig laufen, um eine "morgen.cmd" zu erstellen - die dann erst beim nächsten Mal (morgen) abgearbeitet wird und danach die nächste "morgen.cmd" erstellt.
Dipps
Dipps 25.11.2009 um 13:15:22 Uhr
Goto Top
Danke Timo deine Lösung funktioiert sehr gut wenn ich das Hauptscript Täglich um 1 Uhr Starte.
Dipps
Dipps 25.11.2009 um 13:20:04 Uhr
Goto Top
Deins Funktioiert ich habe es jetzt einmal ausgeführt damit es die Daten von heute hat und Morgen werden die Bilder von heute ins Archiv verschoben habe nur noch anstatt copy move eingebaut.
Dipps
Dipps 25.11.2009, aktualisiert am 18.10.2012 um 18:40:05 Uhr
Goto Top
Ich würde jetzt noch einen neuen Beitrag machen um aus den Bildern die jetzt im Archiv sind ein Video Automatisch zuerstellen
Der 2. Teil wäre dann unter Bilder zu Video generieren Automatisch über Batchdatei zuereichen
NoBodyTadl
NoBodyTadl 25.11.2009 um 16:59:52 Uhr
Goto Top
das mit der pn hat einzig und allein den hintergrund das ich die notifications auf pns beschränkt habe

mir sind die board regeln durchaus bekannt

mfg
NoBody