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/WindowsEn consola:
mediainfo "archivo.mp3" "--Inform=General;%Duration/String3%"
En un script:
mediainfo "archivo.mp3" "--Inform=General;%%Duration/String3%%"
Duration : 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#msg1727721Un ejemplo, Para winamp:
PD: Cambia la ruta de la variable "carpeta" si es necesario.
:: Generador de listas de música aleatorias.bat
:: By Elektro H@cker
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"
Salu2.