Dateien umbenennen a la cronjob?
Hallo,
ich arbeite sonst nur mit Linux und muss nun ein Skript für einen Windowsrechner erstellen. Das Problem ist folgendes:
Ich erhalte von einer Kamera via ftp jede Minute eine Datei namens (z.B.) image.img in einen bestimmten Ordner. Da die Kamera dieses Bild immer mit einem neuen Bild gleichen Namens überschreibt muss ich die Datei image.img nach Erhalt umbenennen in z.B. image1.img. Die nächste Datei in image2.img usw.
Wie realisiere ich also unter Windows eine Art Cronjob, der mir jede Minute die neue Datei umbenennt in eine Datei mit laufender Nummer, ohne eine vorhandene Datei zu überschreiben???
Ich denke es könnte ein Batch-Skript sein, dass dann per "geplanter Task" jede Minute aufgerufen wird, wenn das geht.
Aber wie sehen die Befehle unter Windows XP aus???
Ich hoffe Ihr könnt mir helfen!
Vielen Dank!
ich arbeite sonst nur mit Linux und muss nun ein Skript für einen Windowsrechner erstellen. Das Problem ist folgendes:
Ich erhalte von einer Kamera via ftp jede Minute eine Datei namens (z.B.) image.img in einen bestimmten Ordner. Da die Kamera dieses Bild immer mit einem neuen Bild gleichen Namens überschreibt muss ich die Datei image.img nach Erhalt umbenennen in z.B. image1.img. Die nächste Datei in image2.img usw.
Wie realisiere ich also unter Windows eine Art Cronjob, der mir jede Minute die neue Datei umbenennt in eine Datei mit laufender Nummer, ohne eine vorhandene Datei zu überschreiben???
Ich denke es könnte ein Batch-Skript sein, dass dann per "geplanter Task" jede Minute aufgerufen wird, wenn das geht.
Aber wie sehen die Befehle unter Windows XP aus???
Ich hoffe Ihr könnt mir helfen!
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 20199
Url: https://administrator.de/contentid/20199
Ausgedruckt am: 05.11.2024 um 17:11 Uhr
5 Kommentare
Neuester Kommentar
Naja, per Taskplaner würde ich das auch ned realisieren...
Unter Windows ist das schwer, weil da ständig ein Programm im Hintergrund mitlaufen müßte.
Wenn Du diese "Verschwendung" von System-Ressourcen hinnimmst, dann kann man da schon was per VBS oder VB scripten, geht damit am schnellsten.
Batch ist da in meinen Augen zu lahm.
Unter Windows ist das schwer, weil da ständig ein Programm im Hintergrund mitlaufen müßte.
Wenn Du diese "Verschwendung" von System-Ressourcen hinnimmst, dann kann man da schon was per VBS oder VB scripten, geht damit am schnellsten.
Batch ist da in meinen Augen zu lahm.
Hallo,
ich denke das Program NameDate kann dir hier weiterhelfen. Suche unter:
http://www.informatics-consulting.de/software/namedate.htm
Es ist ca 64 kB groß, Freewareund ein Standalone. Außerdem hat es "hunderte" Parameter und Schalter die Eingeschaltet werden können.
Eine Eingabe von Namedate /Z:HMS /Y Datein.img würde eine Datei mit dem Namen Deitei220130.img erzeugen. es geht aber auch mit Trennzeichen.
Binde die ganze Sache innerhalb eine Batchdate mit eine Waitschleife als geplanten Task ein und lasse diesen dann laufen. sonnst müßtest du 1440 Wiederholungen (bei 24 Std) für deinen Task anlegen.
Wait.exe gibt es im resKit oder hier: http://www.ppedv.de/software/tool.aspx
viel Spaß
Lstenk
ich denke das Program NameDate kann dir hier weiterhelfen. Suche unter:
http://www.informatics-consulting.de/software/namedate.htm
Es ist ca 64 kB groß, Freewareund ein Standalone. Außerdem hat es "hunderte" Parameter und Schalter die Eingeschaltet werden können.
Eine Eingabe von Namedate /Z:HMS /Y Datein.img würde eine Datei mit dem Namen Deitei220130.img erzeugen. es geht aber auch mit Trennzeichen.
Binde die ganze Sache innerhalb eine Batchdate mit eine Waitschleife als geplanten Task ein und lasse diesen dann laufen. sonnst müßtest du 1440 Wiederholungen (bei 24 Std) für deinen Task anlegen.
Wait.exe gibt es im resKit oder hier: http://www.ppedv.de/software/tool.aspx
viel Spaß
Lstenk
Hi.
Habe ein Dos Script, daß das tut was Du beschrieben hast.
Du brauchst die Dateien aus dem Ordner nicht entfernen.
Das script zählt beim start automatich die vorhandenen Dateien.
Danach wartet es Zeitlang, anschliessend prüft auf Neuzugang, wenn eine Neue eingetroffen ist, wird sie umbenannt.
@echo off
:: ----------------------------------------
:: Pfad zum Ordner
set PPFAD=E:\ENTWICKLUNG\TEST
:: Dateiname
set DATEI=T
:: Extention (Endung)
set EXT=txt
:: Zaehler (Nicht veraendern)
set CNT=1
:: Check Interval1 (Testinterval, Nicht veraendern)
set INTER1=0
set INTER2=2
:: ----------------------------------------
ECHO.
:EXISTSCH
if exist %PPFAD%\%DATEI%%CNT%.%EXT% (
ECHO %DATEI%%CNT%.%EXT% Existiert bereits
Ping localhost -n %INTER1% > NUL
set /a CNT=%CNT%+1
goto EXISTSCH
) ELSE (
goto UMBENSCH
)
:UMBENSCH
if exist %PPFAD%\%DATEI%.%EXT% (
REN %PPFAD%\%DATEI%.%EXT% %DATEI%%CNT%.%EXT%
ECHO %DATEI%%CNT%.%EXT% Wurde Hinzugefuegt
set /a CNT=%CNT%+1
)
Ping localhost -n %INTER2% > NUL
GOTO UMBENSCH
Gruß. Tom
Habe ein Dos Script, daß das tut was Du beschrieben hast.
Du brauchst die Dateien aus dem Ordner nicht entfernen.
Das script zählt beim start automatich die vorhandenen Dateien.
Danach wartet es Zeitlang, anschliessend prüft auf Neuzugang, wenn eine Neue eingetroffen ist, wird sie umbenannt.
@echo off
:: ----------------------------------------
:: Pfad zum Ordner
set PPFAD=E:\ENTWICKLUNG\TEST
:: Dateiname
set DATEI=T
:: Extention (Endung)
set EXT=txt
:: Zaehler (Nicht veraendern)
set CNT=1
:: Check Interval1 (Testinterval, Nicht veraendern)
set INTER1=0
set INTER2=2
:: ----------------------------------------
ECHO.
:EXISTSCH
if exist %PPFAD%\%DATEI%%CNT%.%EXT% (
ECHO %DATEI%%CNT%.%EXT% Existiert bereits
Ping localhost -n %INTER1% > NUL
set /a CNT=%CNT%+1
goto EXISTSCH
) ELSE (
goto UMBENSCH
)
:UMBENSCH
if exist %PPFAD%\%DATEI%.%EXT% (
REN %PPFAD%\%DATEI%.%EXT% %DATEI%%CNT%.%EXT%
ECHO %DATEI%%CNT%.%EXT% Wurde Hinzugefuegt
set /a CNT=%CNT%+1
)
Ping localhost -n %INTER2% > NUL
GOTO UMBENSCH
Gruß. Tom