¿como hago? Procesamientos Batch, archivos directorios &variables

xulen

Lanero Regular
26 Jul 2008
2
Salute, estoy luchando con unos archivos que tengo que convertir de un formato a otro. El proceso es un plomo y quisiera automatizarlo.

Un muchacho de doom9 ofrecio el código que en teoría resuelve mi problema -actualizando el path- pero a mi no me funcionó. Así que me puse a mirar el asunto para ver si aprendo un poco. Este es el código:

@echo off
echo.
echo.
echo -----%1-----
C:\besplit\BeSplit -core( -input "u:\dtsmusik\%1.wav" -output u:\dtstempdts\%1.dts -type dtswav -fix )
echo.
echo.
C:\besweet\azidts.exe -core( -input u:\dtstempdts\%1.dts -output u:\dtstempmono\%1--- -6ch ) -ota( -fs 44100 ) -ssrc( --rate 48000 )
echo.
del u:\dtstempdts\%1.dts
echo u:\dtstempmono\%1---FL.wav > u:\dtsmux\%1.mux
echo u:\dtstempmono\%1---C.wav >> u:\dtsmux\%1.mux
echo u:\dtstempmono\%1---FR.wav >> u:\dtsmux\%1.mux
echo u:\dtstempmono\%1---SL.wav >> u:\dtsmux\%1.mux
echo u:\dtstempmono\%1---SR.wav >> u:\dtsmux\%1.mux
echo u:\dtstempmono\%1---LFE.wav >> u:\dtsmux\%1.mux
echo.
c:\besweet\BeSweet.exe -core( -input u:\dtsmux\%1.mux -output u:\dtstempmono2\ ) -surdvd( -b 768 -output "u:\dtsdone\%1.dts" -path "c:\SurCode DVD DTS" )
echo.
del u:\dtsmux\%1.mux
del u:\dtstempmono\%1---FL.wav
del u:\dtstempmono\%1---C.wav
del u:\dtstempmono\%1---FR.wav
del u:\dtstempmono\%1---SL.wav
del u:\dtstempmono\%1---SR.wav
del u:\dtstempmono\%1---LFE.wav
echo.
echo.
echo.
echo
.

Mi duda es la siguiente:


echo -----%1----- (que es esta línea que a primera vista es tan heterodoxa que se parce a un rem)

%1 (es esto el nombre del archivo. Bien, como funciona el % y como funciona el 1)

"u:\dtsmusik\%1.wav" (como funcionan las comillas. En algunos casos pone comillas en otros no. Cual es la función de las comillas?)

Supongamos que tenga 10 archivos en ese directorio. Este código procesa los 10 a la vez o en forma de secuencia? A primera vista diría que -en caso de funcionar, que no lo ha hecho- debe procesar todos a la misma vez. ¿como logro procesar de modo secuencial?


Un saludo.
xul
voyeur en recuperación
 
Hola Xulen,

Con respecto a tus dudas:

En los archivos batch los parámetros del programa son representados con %x, donde x es el número de parámetro (1, 2, 3....). En especial %0 es el nombre del programa y %0 es el conjunto de parámetros que se le pasa al proceso. En tu caso el programa supongo que se ejecuta como

proceso.bat nombredearchivo

por lo cual %1 almacenará "nombredearchivo". Luego,

echo -----%1-----

Te mostrará en pantalla en este caso (echo imprime en pantalla):

echo -----nombredearchivo-----.

Las comillas son necesarias en el caso que se construya una ruta que pueda tener espacios. De hecho es saludable utilizar las comillas siempre que se construyan rutas, uno nunca sabe :)

Tal como está ese código, si lo entendí bien, te permite procesar de a un archivo por vez. Para leer todos los archivos en un directorio requiere un poco más de codificación :) Mira si te sirve así y si quieres te colaboro con lo otro.

Saludos,

Andrés M.
 
Muletas.bat

Bueno, considero algunos progresos luego de sus intervenciones: andmau y UA(inefable) gracias.

En principio quisiera que mi código leyera un directorio y procesara todos los archivos que cumplen determinada condición. En fin, no se que tan trabajoso es lograr esto.

Si alguien sabe como puedo enseñarme a hacer algo como eso se agradece.


Saludos

PD:
¿Debería correr este tema al miniforo de batch?
 

Los últimos temas