|
42
|
Programación / Scripting / Re: Ayuda con BAT leer Archivo
|
en: 2 Octubre 2009, 22:11 pm
|
Mira, pues hice lo que me has dicho, cambie el tokens a 3 pero solo me muestra lo que se encuentra detras del tercer " _" Estuve probando con otros valores y con un %%_*_ pero tampoco funciono. me das una manito. Gracias.
|
|
|
43
|
Programación / Scripting / Re: Ayuda con BAT leer Archivo
|
en: 2 Octubre 2009, 17:13 pm
|
Hola, perdona por insisteir, pero hay algo que no emesta funcionando.. porque al adaptarlo a mi y exportarlo a un txt, me sale esto: %%~na, en el archivo : %%a %%~na, en el archivo : %%a %%~na, en el archivo : %%a %%~na, en el archivo : %%a cuando deberia aparecer otro dato. Por otro aldo tu estas leyendo el contenido del txt o el nombre, porque no necesito leer el nombre. Gracias.
|
|
|
44
|
Programación / Scripting / Re: Ayuda con BAT leer Archivo
|
en: 30 Septiembre 2009, 15:20 pm
|
Amigo, ya encontre porque me falla, en realidad tu estas ahciendo el codgi a partir del tercer "_" no del segun como como te decia, essimplemente eso, como modifico tu codigo? Gracias.
|
|
|
45
|
Programación / Scripting / Re: Ayuda con BAT leer Archivo
|
en: 29 Septiembre 2009, 15:24 pm
|
Hola, comoe stas? amigo, la verdad no logro hacer que fucniones, si uso el codigop que me pasaste, ya me deja de fucnioanr el BAT y no trabajr como deberia, te explico que necesito, apra ver si me peude hechar ua mano. 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 Con ese codigo, yo kleo cada nombre de txt del directorio, ejemplo: 1_00026_081122_081130.txtluego con la variable set n1=%~nx2 extraigo 1 ( 1_00026_081122_081130.txt) Con la variable set n2=%~3 extraigo el 26 (1_000 26_081122_081130.txt) Con al variable set n3=%~n1 extraigo el 1_00026_ 081122_081130.txt esta ultima variable es la que neceito modificar, apra que ya no me cuente los 13 caracteres si no que me cuento doto lo que alla desde el " _" hasta el .txt (sin incluir este) y sin importar la catidad y tipo de caracteres, me entiendes? Ejemplo: 00026_ 081122_081130.txt ó 00026_ 081122_081130PRUEBA.txt El tema es que yo no se utilizar los tokens, anteriormente me ayudaron ustedes con este problema. Y trate de probar el codigo con mis conocimientos, peor no logro ahcerlo fucnioanr. Gracias.
|
|
|
47
|
Programación / Scripting / Re: Ayuda con BAT leer Archivo
|
en: 28 Septiembre 2009, 14:32 pm
|
Bue amigo aqui te dejo el codigo que armado anteriormente con un poco de la ayuda de ustedes. miralo y te exoplico cual es la modificacionq ue quiero realizar ahora. @echo off title Encolador Automatico Uso especial en CDRA color 4f ECHO -------------------------------------------------------------------------- echo ENCOLADOR AUTOMATICO ICR xxxxx ECHO -------------------------------------------------------------------------- echo. echo.
rem --Crea los directorios "Procesados, 1, 2, 3, Registros"-- echo Creando Directorios de Respaldo echo. IF NOT EXIST c:\ICR\DATA\Procesados MKDIR c:\ICR\DATA\Procesados IF NOT EXIST c:\ICR\DATA\Procesados\1 MKDIR c:\ICR\DATA\Procesados\1 IF NOT EXIST c:\ICR\DATA\Procesados\2 MKDIR c:\ICR\DATA\Procesados\2 IF NOT EXIST c:\ICR\DATA\Procesados\3 MKDIR c:\ICR\DATA\Procesados\3 IF NOT EXIST c:\ICR\DATA\Procesados\Registros MKDIR c:\ICR\DATA\Procesados\Registros cls
rem --Crea en la carpeta "ICR" un Script que borra los txt con un mes de antiguedad-- rem --EL SCRIPT BORRA DESDE LA CARPETA "PROCESADOS" TODAS LAS SUBCARPETAS QUE ENCUENTRE DENTRO. echo Creando Script de VBS echo ^set objshell = createobject("wscript.shell") >> delfull.vbs echo objshell.run "cmd /c dir C:\ICR\DATA\Procesados /s /b > temp.txt",vbhide >> delfull.vbs echo wscript.sleep 2000 >> delfull.vbs echo ^set objfso = createobject("scripting.filesystemobject") >> delfull.vbs echo ^set temp = objfso.opentextfile("temp.txt",1) >> delfull.vbs echo do until temp.atendofstream >> delfull.vbs echo fi = temp.readline >> delfull.vbs echo if objfso.fileexists(fi) = true then >> delfull.vbs echo if objfso.getfile(fi).parentfolder.name ^<^> Registros then >> delfull.vbs echo if datediff("m",objfso.getfile(fi).datecreated,now()) ^>= 1 then >> delfull.vbs echo objfso.deletefile(objfso.getfile(fi).path) >> delfull.vbs echo end if >> delfull.vbs echo end if >> delfull.vbs echo end if >> delfull.vbs echo loop >> delfull.vbs echo temp.close >> delfull.vbs
rem --Este codigo ejecuta el Script creado en la carpeta-- start /wait delfull.vbs
rem --Borra el Script de la carpeta-- del delfull.vbs
rem --Esto borra el txt creado por el script VBS-- del temp.txt
rem --Busca los txt del directorio "\DATA\", segun la empresa y la sucursal genera el codigo y lo ejecuta-- echo Se cargaran los Archivos y se Realizara el Backup echo. 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 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:~-13% >>%SYSTEMDRIVE%\ICR\DATA\Procesados\Registros\%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,2%.%time:~3,2%.txt Como pueden ver esta sección: echo EMPRESA: %n1% SUCURSAL: %n2% PERIODO: %n3:~-13% >>%SYSTEMDRIVE%\ICR\DATA\Procesados\Registros\%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,2%.%time:~3,2%.txt exporto un archivo de txt de registro, dentro del mismo me guarda partes de los archivos encontrados en el directorio, pero necesito que el PERIODO: ya no sea %n3:~-13%, osea que no me guarde los ultimo 13 caracteres si no todo los que hay desde el segundo "_" hasta la extensión (sin incluir esta). ejemplo: 2_00411_ 080601_080630POTE.TXT 1_00411_ 080601_080630EE.TXT La verdad no logro hacerlo. Espero me puedan ayudar. Gracias. Nota del mod:he corregido las etiquetas
|
|
|
48
|
Programación / Scripting / Re: Ayuda con BAT leer Archivo
|
en: 24 Septiembre 2009, 22:16 pm
|
Es verdad disculpame, se me olvido aclarar ese detalle, el BAt revisa en un directorio todos lso txt, pero solo el nombre de archivo, o el contenido y nesecito extraer lo que se encuentra detras del segundo "_" ejemplo:
2_00411_080601_080630POTE.TXT
Con el codgido que me dejaste arriba puedo hacerlo, porque po lo qeu veo, lee una parte sola del nombre.
|
|
|
49
|
Programación / Scripting / Re: Ayuda con BAT leer Archivo
|
en: 24 Septiembre 2009, 20:39 pm
|
No logro hacerlo funcionar, mira te muestro el pedazop de codigo que tengo yo. 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 Ese codigo me busca lso archivos de texto en el directorio, me gustaria reemplazar el set n3=%~n1 por lo que te pido arriba. gracias.
|
|
|
50
|
Programación / Scripting / Re: Ayuda con BAT leer Archico
|
en: 24 Septiembre 2009, 17:46 pm
|
Pero amigo ya fui calro, tengo archivos de texto con el siguiente formato:
2_00411_080601_080630.TXT
Yo necesito leer el nombre de archivo sin extensión apartir del segundo "_" osea en este caso necesitaria 080601_080630
pero el problema es que aveces el archivo puede ser mas largo ejemplo.
2_00411_080601_080630HL.TXT ó 2_00411_080601_080630POTE.TXT
|
|
|
|
|
|
|