Pues bueno, estoy haciendo un programa que me abra la musica de manera aleatoria y me parece muy molesto estar pulsando enter cada vez que se acaba una cancion, asi que me preguntaba si hay alguna manera de sacar la duracion de una cancion desde batch, en segundos a poder ser, para con ping localhost -n que sea automatico. Gracias
Nativamente hablando no puedes hacer nada para obtener la duración de un archivo de música.
Con
Mediainfo si que puedes.
http://mediainfo.sourceforge.net/es/Download/Windows
En consola:
mediainfo "archivo.mp3" "--Inform=General;%Duration/String3%"
En un script:
mediainfo "archivo.mp3" "--Inform=General;%%Duration/String3%%"
CitarDuration : Play time of the stream in ms
Duration/String : Play time in format : XXx YYy only, YYy omited if zero
Duration/String1 : Play time in format : HHh MMmn SSs MMMms, XX omited if zero
Duration/String2 : Play time in format : XXx YYy only, YYy omited if zero
Duration/String3 : Play time in format : HH:MM:SS.MMM
Pienso que lo mejor sería que hicieses una lista de reproducción. Para añadir todos los archivos a la lista del reproductor que usas. Así no tienes que pulsar enter, Ni averiguar el tiempo.
http://foro.elhacker.net/scripting/script_en_batch_para_ordenar_un_poco-t356306.0.html;msg1727721#msg1727721
Un ejemplo, Para winamp:
PD: Cambia la ruta de la variable "carpeta" si es necesario.
@Echo OFF
:: Generador de listas de música aleatorias.bat
:: By Elektro H@cker
Title %~n0
Mode con cols=50 lines=3
Setlocal enabledelayedexpansion
chcp 1252 >NUL
Set "Carpeta=%cd%"
Echo+
Echo: Espere, Se esta randomizando la lista...
Echo #EXTM3U>"%Temp%\Lista Winamp.tmp"
For /F "Tokens=*" %%$ in ('Dir /B /S "%CARPETA%" ^| Findstr /I /R ".aif .flac .m4a .mid .mp3 .ogg .wav .wma"') do (Echo !Random!!Random!!Random!;%%$>>"%Temp%\Lista Winamp.tmp")
Echo #EXTM3U>"%Temp%\Lista Winamp.m3u"
For /F "Tokens=2* Delims=;" %%$ in ('Type "%Temp%\Lista Winamp.tmp" ^| Sort ') do (Echo %%$>>"%Temp%\Lista Winamp.m3u")
Start /B C:"\Program Files (x86)\Winamp\winamp.exe" "%Temp%\Lista Winamp.m3u"
Exit
Salu2.