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

Ausgedruckt am: 28.03.2024 um 09:03 Uhr

Mitglied: bastla
bastla 28.12.2006 um 22:10:31 Uhr
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]
Mitglied: Biber
Biber 28.12.2006 um 22:44:08 Uhr
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
Mitglied: bastla
bastla 29.12.2006 um 14:28:10 Uhr
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
Mitglied: Biber
Biber 04.01.2007 um 12:57:16 Uhr
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
Mitglied: Biber
Biber 09.01.2007 um 09:01:44 Uhr
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