Título: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 29 Julio 2008, 02:13 am editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: Darioxhcx en 29 Julio 2008, 02:18 am si de poderse se puede
pero no entendi como son los archivos, xD pero si se puede seguro que alguien te ayuda o si podrias ser mas claro te ayudaria es q no entendi xD saludos Título: Re: Programacion BAT! AYUda Por favor! Publicado por: carlitos.dll en 29 Julio 2008, 03:58 am Yo te ayudo, pero necesito entender bien el patrón.
¿Me darías un ejemplo de archivo de texto? 2_00018 ¿Todos los archivos de texto tienen 7 carácteres de longitud? ¿Tienen solo numeros y un _? ¿Necesitas siempre el número antes del _? ¿Necesitas siempre el número después del _ sin contar los ceros? Si me explicas bien que valores según un patrón tendrán siempre esos archivos de texto, te ayudo. Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 30 Julio 2008, 03:26 am editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: carlitos.dll en 30 Julio 2008, 04:32 am Código Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 30 Julio 2008, 05:05 am editado!
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 30 Julio 2008, 05:13 am editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: carlitos.dll en 30 Julio 2008, 20:36 pm Actualizo el code, tenía un problema en esta línea:
Código: for /f "tokens=1 delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d) Si tenía un archivo llamado: 2_001018_080601_080630.txt en vez de generar el 1018 generaba 1. Esta es la solución: Código: for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d) Título: Re: Programacion BAT! AYUda Por favor! Publicado por: carlitos.dll en 30 Julio 2008, 20:53 pm Te explico como funciona:
Los archivos de texto deben estar en C:\ICR\DATA\ con el for %%a busco en dicha carpeta los archivos de texto que tengan: C:\ICR\DATA\?_*_*_*.txt es decir: que tengan un caracter, un _ , luego varios caracteres, un _ , luego varios caracteres, un _ , luego varios caracteres, con extensión .txt Luego en for /f %%b (con el for /f leo el contenido de un archivo o una cadena de texto, por eso dentro de for /f %%b coloco ("%%a") entre comillas, es decir con %%b leo el nombre del archivo que me proporciona %%a, y obtengo los dos primeros tokens delimitados por el caracter _ , el primer token será %%a e implicitamente el segundo token será %%c, luego llamo a for /f %%d con el contenido de "%%c" es decir el segundo token: y con "tokens=* delims=0" le borro los caracteres 0 del principio, luego llamo a la etiqueta comando, con el contenido de %%a (el nombre del archivo .txt) %%b con el primer token del nombre antes del _ y %%d que es el segundo token antes del _ con los ceros del principio borrados. La etiqueta comando recibe en la variable n0 el primer parametro (%%a) y si viene con comillas se las borra (~) en variable n1 recibo el primer token antes del _ (%%b) pero este viene con el nombre, es decir: ejemplo: C:\ICR\DATA\2 y con %~nx2 obtengo solo el nombre y la extensión (puedes borrar la x porque aqui no recibimos extensión) y en variable n2 recibimos el segundo token después del _ con los ceros del principio borrados. Entonces hacemos el comando: C:\ICR\encolador.exe N %n0% Tabla:Entrada %n1% %n2% N US PW SERVIDOR B. DE DATOS que si quieres ver la salida, le pones: echo C:\ICR\encolador.exe N %n0% Tabla:Entrada %n1% %n2% N US PW SERVIDOR B. DE DATOS>>salida.txt y verás los comandos que genera. Puedes comentar el @echo off ::@echo off o rem @echo off y al final del archivo añades un pause, y verás como trabaja. Te dejo el script más sencillo: Código Título: Re: Programacion BAT! AYUda Por favor! Publicado por: carlitos.dll en 30 Julio 2008, 21:25 pm Más optimizado:
Código Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 31 Julio 2008, 05:02 am editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 31 Julio 2008, 17:03 pm editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: Novlucker en 31 Julio 2008, 17:15 pm En lugar de utilizar : utiliza otro símbolo, como ser _
Saludos Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 31 Julio 2008, 17:18 pm editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: Novlucker en 31 Julio 2008, 17:44 pm Al igual que en tu anterior comando....
Citar %date:~0,2%-%date:~3,2%-%date:~6,4% Código: %time:~0,2%_%time:~3,2%_%time:~6,2%-%time:~9,2% ;) Saludos Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 31 Julio 2008, 18:09 pm editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 2 Agosto 2008, 23:56 pm editado
Título: Re: Programacion BAT! AYUda Por favor! Publicado por: elecktra en 5 Agosto 2008, 04:15 am editado
|