Autor
|
Tema: Ayuda con BAT leer Archivo (Leído 25,424 veces)
|
Aranguez
Desconectado
Mensajes: 14
|
Hola buenas noches, les dejo este codigo que a mi me funciona para lo que buscan: echo off for %%a in (C:\zpru\*.txt) do ( for /f "tokens=1,2* delims=_" %%b in ("%%~na") do ( echo %%d ) )
Espero te sea de utilidad Saludos
|
|
« Última modificación: 4 Octubre 2009, 08:26 am por Leo Gutierrez. »
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
Hola, como estan el programa a utilizar es el Notepad++, es free y muy comodo para trabajar.
|
|
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
Amigos, gracias a ustedes, estoy mas serca de terminar este codigo. Hice esto: for %%a in (C:\ICR\DATA\?_*_*_*.txt) do ( for /f "tokens=1,2 delims=_" %%b in ("%%a") do ( for /f "tokens=1,2* delims=_" %%b in ("%%~na") do ( for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d)
set n3=%%d ) ) ) )
goto :eof
:comando set n0=%~1 set n1=%~nx2 set n2=%~3
C:\ICR\DATA\encolador.exe N %n0% Tabla:Entrada %n1% %n2% N sa sa CDRA-BAS BASCDR rem --Comprueba si existen las carpetas de empresa y sucursal segun los archivos que encuentre y crea las carpetas-- IF NOT EXIST c:\ICR\DATA\Procesados\%n1%\%n2% MKDIR c:\ICR\DATA\Procesados\%n1%\%n2% rem --Copia cada archivo txt a su carpeta que corrsponda de empresa y sucursal-- copy /y %n0% "c:\ICR\DATA\Procesados\%n1%\%n2%\" rem --Elimina los txt del directorio "\DATA\"-- del /q %n0% rem --Genera un archivo txt en la carpeta "\Registros\" con los comando que creo y ejecuto el BAT-- echo EMPRESA: %n1% SUCURSAL: %n2% PERIODO: %n3% >>%SYSTEMDRIVE%\ICR\DATA\Procesados\Registros\%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,2%.%time:~3,2%.txt Ahora si lo gro exportar el txt con los datos necesarios, pero me urgio otro problema. El txt exportado, es como se saltea una linera, observer, me loe xporta asi: EMPRESA: 1 SUCURSAL: 5 PERIODO: EMPRESA: 1 SUCURSAL: 26 PERIODO: 080801_080831 EMPRESA: 1 SUCURSAL: 40 PERIODO: 081122_081130 EMPRESA: 1 SUCURSAL: 72 PERIODO: 080701_080731 EMPRESA: 1 SUCURSAL: 72 PERIODO: 081215_081215PRUEBA EMPRESA: 2 SUCURSAL: 11 PERIODO: 081215_081217PPO EMPRESA: 2 SUCURSAL: 411 PERIODO: 080601_080630 EMPRESA: 3 SUCURSAL: 11 PERIODO: 080601_080630
me entiende? es como que no concide. Gracias. Me entiendes, simrpe la primer linea del txt aparece en blanco
|
|
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
Pero creo que tengo problemas con la variable n3, si la seteo por debajo de :comando no me da resultados. Ahora hice bien, porque yo simplemente pegue una linea del codigo que me dejaron arriba en mi codigo, pero veo que hay dos lienas con la misa variable.
for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d)
echo %%d
|
|
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
Amigos, me pueden ayudar cone ste problemita? gracias.
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Sí se te puede ayudar, pero cuando se tenga tiempo y disposición, no hagas doble post, por favor.
|
|
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
Hola, otra de las cosas que em dic eunta es que no puedo setear una variable despeus de cerrar con ) for %%a in (c:\icr\data\*.txt) do ( for /f "tokens=1,2* delims=_" %%b in ("%%~na") do ( for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d) rem echo %%d >>prueba.txt
echo %%~na, en el archivo : %%d >>prueba2.txt
rem set n3=%%d
) )
goto :eof
:comando set n0=%~1 set n1=%~nx2 set n2=%~3
La variable n3, si la seteo junto a las otras no funciona.
|
|
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
Creo saber cual es el problema, peor nos e como solucioanrlo, le sexplico loq eu pienso.. mi codigo original era este: for %%a in (C:\ICR\DATA\?_*_*_*.txt) do ( for /f "tokens=1,2 delims=_" %%b in ("%%a") do ( for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d) ) ) goto :eof
:comando set n0=%~1 set n1=%~nx2 set n2=%~3 set n3=%~n1 Luego el usuarios Aranguez me dejoe ste: echo off for %%a in (C:\zpru\*.txt) do ( for /f "tokens=1,2* delims=_" %%b in ("%%~na") do ( echo %%d ) ) y el de el si em funcionaba, pero el problema es que debia adaptarlo a mi codigo, entonces simplemente a mi codigo le agruegue una linea. for %%a in (C:\ICR\DATA\?_*_*_*.txt) do ( for /f "tokens=1,2 delims=_" %%b in ("%%a") do ( for /f "tokens=1,2* delims=_" %%b in ("%%~na") do (for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d) ) ) goto :eof :comando set n0=%~1 set n1=%~nx2 set n2=%~3 set n3=%~n1 Pero cuadno exporto todo a un TXT, no coinciden lso renglones, y tampoco me deja hacer un echoo %%d despues de cerrar los parentecis. Creoq eu el problema esta en yo al copiar la linea del codigo que em dejaron al mio, se repiten als variables %%d. Pero como ahgo apra reemplazar por otra letra yq eu fucnione? No se como hacerlo. Gracias.
|
|
|
En línea
|
|
|
|
Aranguez
Desconectado
Mensajes: 14
|
Ok, sustituye la linea tuya:
for /f "tokens=1,2 delims=_" %%b in ("%%a") do (
por esta otra que te di en mi codigo:
for /f "tokens=1,2* delims=_" %%b in ("%%~na") do (
Saludos
|
|
|
En línea
|
|
|
|
elecktra
Desconectado
Mensajes: 120
|
Hola aranguez, ese metodo ya lo ahbai probado, peor el problema es qeu no puedo setear la variable por debajo del :comando, porque me arroja como resultado: EMPRESA: 1 SUCURSAL: 5 PERIODO: %d EMPRESA: 1 SUCURSAL: 26 PERIODO: %d EMPRESA: 1 SUCURSAL: 40 PERIODO: %d EMPRESA: 1 SUCURSAL: 72 PERIODO: %d EMPRESA: 1 SUCURSAL: 72 PERIODO: %d EMPRESA: 2 SUCURSAL: 114 PERIODO: %d EMPRESA: 2 SUCURSAL: 11 PERIODO: %d EMPRESA: 2 SUCURSAL: 411 PERIODO: %d EMPRESA: 3 SUCURSAL: 11 PERIODO: %d Cuando deberia ser: EMPRESA: 1 SUCURSAL: 5 PERIODO: 080801_080831 (y asi por cada linea.) Es raro proque si seteo una variable antes de cerrar lo ")" me lo muestra pero desfazado: osea: EMPRESA: 1 SUCURSAL: 5 PERIODO: EMPRESA: 1 SUCURSAL: 26 PERIODO: 080801_080831 EMPRESA: 1 SUCURSAL: 40 PERIODO: 081122_081130 EMPRESA: 1 SUCURSAL: 72 PERIODO: 080701_080731 EMPRESA: 1 SUCURSAL: 72 PERIODO: 081215_081215PRUEBA EMPRESA: 2 SUCURSAL: 114 PERIODO: 081215_081217PPO EMPRESA: 2 SUCURSAL: 11 PERIODO: 080601_080630 EMPRESA: 2 SUCURSAL: 411 PERIODO: 080601_080630 EMPRESA: 3 SUCURSAL: 11 PERIODO: 080601_080630
Me sta volviendo loco, este code, no lofro identificar el error. Gracias.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AYUDA CON BAT, LEER NOMBRE DE ARCHIVO...
Scripting
|
elecktra
|
3
|
3,103
|
28 Noviembre 2008, 00:56 am
por Darioxhcx
|
|
|
Ayuda a leer y modificar Bytes de un Archivo
.NET (C#, VB.NET, ASP)
|
adan-2994
|
4
|
6,287
|
7 Agosto 2011, 02:52 am
por adan-2994
|
|
|
Ayuda - Leer Varios Datos en un Archivo Txt
Programación C/C++
|
alejandrosevenfold
|
2
|
3,210
|
20 Septiembre 2012, 22:39 pm
por alejandrosevenfold
|
|
|
Ayuda al leer archivo
Programación C/C++
|
mnd00003
|
1
|
2,100
|
13 Octubre 2014, 18:13 pm
por rir3760
|
|
|
ayuda con mi codigo, leer de un archivo en c
Programación C/C++
|
yeah_2796
|
0
|
1,691
|
28 Mayo 2015, 23:17 pm
por yeah_2796
|
|