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
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130183
Url: https://administrator.de/contentid/130183
Ausgedruckt am: 26.11.2024 um 09:11 Uhr
15 Kommentare
Neuester Kommentar
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
\\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
Servus,
@NoBodyTadl
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ß
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ß
Hallo Timo,
ich stimme dir fast Vollinhaltlich zu
Dipps schrieb was von Vortag, wenn er also alle bis auf die heutigen in entsprechende Tagesordner sortieren will, könnte da so aussehen:
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
geändert werden.
Ungetestet
ich stimme dir fast Vollinhaltlich zu
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"
Ungetestet
Servus,
klar geht das
Wobei ich wahrscheinlich nicht verstanden habe - was du genau meinst.
Denn beim copy bleiben die alten Dateien ja in der Cam...
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...
@ LotPings:
Vortag hat er aber gut versteckt - oder genauer - meine Augen müssen zum nachschleifen
ich würde das evtl. kürzer mit einer Temp. datei lösen..
28/29.2 30/31.xx usw. ist mir zu viel schreiberei.(If else / wenn und aber)
ungetestet
Gruß
Vortag hat er aber gut versteckt - oder genauer - meine Augen müssen zum nachschleifen
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
ungetestet
Gruß
Zitat von @Dipps:
Das Script Springt bei mir nur kurz auf und schließt gleich wieder ohne etwas an den Daten zu ändern.
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.