markusmx
Goto Top

Batch-Skript für Rotation von Dateien durch Umbenennen gesucht

Hallo zusammen,

ich suche ein Batch-Skript zum Rotieren von Dateien, welches ich als geplanten Task nachts starten kann.

Die Situation:
Die Wartemusik unserer Swyx-Telefonanlage liegt als Wave-Datei vor. Jeden Tag soll eine andere Datei abgespielt werden. Dazu liegen im Verzeichnis vier Dateien vor (1.wav bis 4.wav).
Die Software spielt per Einstellung stets die Datei "1.wav" ab. Nachts sollen die Dateien mittels Skript rotiert werden, sodass jeden Tag eine andere gespielt wird.

Freue mich über Postings, wie ein solches Skript aussehen kann!

- Wünsche allen einen guten Rutsch ins neue Jahr! -

Markus

Content-Key: 47373

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

Printed on: April 27, 2024 at 01:04 o'clock

Member: bastla
bastla Dec 28, 2006 at 21:10:31 (UTC)
Goto Top
Hallo MarkusMX und willkommen im Forum!

Da man sowas ja vielleicht öfter mal braucht, habe ich einen etwas ausführlicheren Lösungsvorschlag:
@echo off & setlocal
set max=4
set Pfad=Z:\Musik\ 
set Ext=wav
if exist %Pfad%0.%Ext% move /y %Pfad%0.%Ext% %Pfad%0.%Ext%.bak
ren %Pfad%%max%.%Ext% 0.%Ext%
for /l %%i in (%max%,-1,1) do call :RenameIt %%i
goto :eof
:RenameIt
set /a Old=%1-1
ren %Pfad%%Old%.%Ext% %1.%Ext%

Grüße
bastla

[Edit] if exist-Zeile ergänzt, um ev existierende 0.wav "aus dem Weg zu räumen" [/Edit]
Member: Biber
Biber Dec 28, 2006 at 21:44:08 (UTC)
Goto Top
Moin MarkusMX,

willkommen auch von mir.
Wenn es denn mit Umbenennerei gelöst werden soll, ist bastla's Lösung sicher passend.

Die Rotier-Strategie, die ich allerdings vorziehen würde, wäre: Nicht umbenennen, sondern jeden Tag eine andere *.wav-Datei abspielen.
Entweder direkt aufgerufen oder eben eine Datei als 1.wav irgendwohin kopiert, wo ein Datei dieses Namens erwartet wird.
Als fester Punkt im Raum kann doch der Tag des aktuellen Datums %Date% diesen. Skizze:
@echo off & setlocal
REM [falls Win2K-Datumsformat: "ttt TT.MM.JJJJ"---> kürzen auf "TT.MM.JJJJ" ]  
for %%i in (%date%) do Set myDate=%%i
for /f "delims=. " %%i in ("%mydate%") do set /a TodaysJingle=%%i%%4+1  
REM und jetzt entweder "Start %TodaysJingle%.wav" oder,   
REM falls irgendwo fest verdrahtet in einer App eingebrannt ist "...spiel x:\subdir\1.wav"  
copy /y x:\alleMeineJingles\%TodaysJingle%.wav x:\SubDir\1.wav

So oder so - ich würde nicht 5 mal Dateien umbenennen, wenn ich eine Datei namens 1.wav brauche.

Gruß
Biber
Member: bastla
bastla Dec 29, 2006 at 13:28:10 (UTC)
Goto Top
@Biber

Sicher einer sinnvollere Lösung (und alle 4 Jahre zweimal hintereinander die gleiche Melodie ist wohl auszuhalten face-wink) ...

Grüße
bastla
Member: Biber
Biber Jan 04, 2007 at 11:57:16 (UTC)
Goto Top
Moin MarkusMX,

Nachfrage:
Hattest Du denn schon Zeit und Gelegenheit, einen der Lösungsvorschläge auszuprobieren?
Falls ja, mit welchem Ergebnis?

Gruß
Biber
Member: Biber
Biber Jan 09, 2007 at 08:01:44 (UTC)
Goto Top
Moin MarkusMX,

ich interpretiere das mal so, dass das Thema Bätche und Rotation aufgrund neuer erfreulicher privater aktueller Entwicklungen in Deinem momentanen Lebensabschnitt deutlich auf der Prioritätenliste herabgestuft wurde.

Herzlichen Glückwunsch, was auch immer der Anlass war.

Den Beitrag schließe ich.

Danke für das Gespräch.
Biber