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-Key: 130183

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

Printed on: April 25, 2024 at 20:04 o'clock

Member: NoBodyTadl
NoBodyTadl Nov 25, 2009 at 09:01:42 (UTC)
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
Member: Dipps
Dipps Nov 25, 2009 at 09:27:31 (UTC)
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.
Member: Dipps
Dipps Nov 25, 2009 at 09:31:17 (UTC)
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
Mitglied: 60730
60730 Nov 25, 2009 at 10:19:57 (UTC)
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?
Discussion guidelines - The rules for our content

Ps: Die Cam wird schwerlich mit den DOsbefehlen arbeiten, die uns Bill und seine Praktikanten gegeben haben.
Gruß
Member: Dipps
Dipps Nov 25, 2009 at 10:37:53 (UTC)
Goto Top
kannst du mir bei robocopy noch helfen????
Ich kenn mich damit nicht aus und sehe da auch gerade nicht durch.
Member: Dipps
Dipps Nov 25, 2009 at 10:53:48 (UTC)
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?
Mitglied: 77559
77559 Nov 25, 2009 at 10:58:46 (UTC)
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
Mitglied: 60730
60730 Nov 25, 2009 at 11:00:56 (UTC)
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...
Mitglied: 60730
60730 Nov 25, 2009 at 11:07:40 (UTC)
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ß
Member: Dipps
Dipps Nov 25, 2009 at 12:03:56 (UTC)
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
Mitglied: 60730
60730 Nov 25, 2009 at 12:10:44 (UTC)
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.
Member: Dipps
Dipps Nov 25, 2009 at 12:15:22 (UTC)
Goto Top
Danke Timo deine Lösung funktioiert sehr gut wenn ich das Hauptscript Täglich um 1 Uhr Starte.
Member: Dipps
Dipps Nov 25, 2009 at 12:20:04 (UTC)
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.
Member: Dipps
Dipps Nov 25, 2009, updated at Oct 18, 2012 at 16:40:05 (UTC)
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
Member: NoBodyTadl
NoBodyTadl Nov 25, 2009 at 15:59:52 (UTC)
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