En el tutorial pasado vimos como ejecutar acciones en gran cantidad de archivos a la vez y además creamos un código que creaba listas de reproducción para winamp.
Como prometÃ, ahora les enseñare a hacer listas pero para Windows Media Player, agrege un tema más para que entiendan mejor el código de la lista.
Indice:
- Acortar direcciones
- Listas de reproducción para Windows media Player.
Acortar direcciones:
Cuando usamos un for para recorrer los archivos nos devuelve la dirección entera del archivo. Esto es molesto, cuando lo que queremos es solo su nombre, o saber su ubicación.
Ahora les voy a enseñar una técnica para acortar esas direcciones.
En el caso por ejemplo de que la variable X tenga la dirección de un archivo y solo quisiéramos saber su extensión, usarÃamos:
%~xX
y si quisiéramos saber en que unidad se encuentra:
%~dX
Para entender un poco mejor esto, miremos esto como una sintaxis.
Siempre se usara %~ seguido de una letra que representa lo que queremos obtener (el nombre, la extensión, etc) y por ultimo el nombre de la variable.
Las letras que podemos usar son:
- f Ruta y Nombre
- d Nombre Unidad donde se encuentra
- p Solo ruta
- n Solo nombre
- x Extensión
- s Ruta abreviada
- a Atributos
- t Fecha y hora de creación
- z Tamaño del archivo
Por ejemplo, este programa nos mostrara algunos datos de los archivos que existan en la misma carpeta y directorios superiores.
@echo off FOR /R %%X in (*) DO ( echo Nombre: %%~nX echo Extension: %%~xX echo Tamaño: %%~zX echo. )
Como vez, en el caso de los FOR debemos agregar un % extra adelante.
Lista de Reproducción para Windows Media Player:
Más o menos siguiendo el esquema anterior, lo que hize fue ver como era aproximadamente como era un archivo de Lista de Reproducción. Después de un no muy intenso análisis podemos ver que es asÃ.
<smil><body><seq> <media src="RUTA NO FIJA DEL ARCHIVO.mp3" /> </seq></body></smil>
El problema que encontré en la sintaxis de los archivos es que al intentar hacer un echo a los signos < y > el código dejaba de funcionar. Pues encontré la solución, simplemente agregando el signo ^ antes de cada < o >. Pues asà quedó:
@echo off echo. > Lista.wpl echo ^<smil^>^<body^>^<seq^> >> Lista.wpl FOR %%X in (*.mp3) DO ( echo ^<media src="%%~nX%%~xX" /^> >> Lista.wpl ) echo ^</seq^>^</body^>^</smil^> >> Lista.wpl start Lista.wpl exit
Explicación:
(Si tienes dudas sobre esta explicación, es que no entendiste bien los 3 tutoriales anteriores)
- @echo off
Eliminamos el Eco - echo. > Lista.wpl
Creamos un nuevo archivo Lista.wpl o borramos su contenido si existe - echo ^<smil^>^<body^>^<seq^> >> Lista.wpl
Escribimos <smil><body><seq> en la primera linea del archivo Lista.wpl - for %%X in (*.mp3) DO ()
Ejecutar la acción entre paréntesis para cada archivo encontrado con extensión .mp3 - echo ^<media src=”%%~nX%%~xX” /^> >> Lista.wpl
Escribir <media src=”NombreArchivo+Extencion”/> en la siguiente linea de Lista.wpl, esta accion se repite por cada mp3 encontrado. - echo ^</seq^>^</body^>^</smil^> >> Lista.wpl
Escribir </seq></body></smil> alfinal del archivo. - start Lista.wpl
Abrir la lista con el programa predeterminado - exit
Cerrar ventana DOS
Pues, eso es todo por hoy. Ojala les sea de gran utilidad. Hasta la próxima
(Si es que me da para más)