Archivos del Tag: Util’

Programación en Batch 4º Parte

Sunday, June 8th, 2008

Esta es la cuarta parte de otros tres tutoriales más. Ve aquí El primero, El Segundo y El tercero.
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)


JaLeRu Blog vive gracias a WordPress
Entradas RSS y Comentarios RSS.