elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  -> Programación BATCH Avanzada. (nuevo)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ir Abajo Respuesta Imprimir
Autor Tema: -> Programación BATCH Avanzada. (nuevo)  (Leído 472,752 veces)
Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #60 en: 23 Junio 2008, 18:08 pm »

No me funcionó, pero es posible que sea que lo configuré mal.

Ya hice uno que me funciona de maravilla, pero quiero optimizarlo.
--------------------------------------------------
@echo off
color 0A
title FILTRADO INCAPACIDADES ver3.0
rem Programa: filtroIGE_ver3.5.bat
echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³              Filtrado INCAPACIDADES             ³
echo    ³                   Shinseiki86                   ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo °
goto ingreso

:nocarp
@echo CARPETA INEXISTENTE!

:ingreso
@echo Ingrese o arrastre carpeta a procesar:
set /p carpeta="> "
%carpeta:~1,2%
cd %carpeta%
if %errorlevel% GTR 0 goto nocarp
cls

:busqueda
echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³              Filtrado INCAPACIDADES             ³
echo    ³                   Shinseiki86                   ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo _
echo PROCESANDO 000%%% °°°°°°°°°°°°
findstr /m /c:"000323               0000000000000000000000000000000000000000" *.txt > filtro.xls
cls

echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³              Filtrado INCAPACIDADES             ³
echo    ³                   Shinseiki86                   ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo _
echo PROCESANDO 025%%% ÛÛÛ²±°°°°°°°
findstr /m /c:"000333               0000000000000000000000000000000000000000" *.txt >>filtro.xls
cls

echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³              Filtrado INCAPACIDADES             ³
echo    ³                   Shinseiki86                   ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo _
echo PROCESANDO 050%%% ÛÛÛÛÛÛ²±°°°°
findstr /m /c:"0003230              0000000000000000000000000000000000000000" *.txt >>filtro.xls
cls

echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³              Filtrado INCAPACIDADES             ³
echo    ³                   Shinseiki86                   ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo _
echo PROCESANDO 075%%% ÛÛÛÛÛÛÛÛÛ²±°
findstr /m /c:"0003330              0000000000000000000000000000000000000000" *.txt >>filtro.xls
cls
goto finalizado

:error
echo Se ha producido un error!
echo Posiblemente el archivo está abierto
echo Cierre el archivo filtro.xls y presione cuaquier tecla para
echo intentar crear de nuevo el archivo.
pause >nul
cls
goto busqueda

:finalizado
echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³              Filtrado INCAPACIDADES             ³
echo    ³                   Shinseiki86                   ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo _
echo PROCESANDO 100%%%% ÛÛÛÛÛÛÛÛÛÛÛÛ
echo Archivo filtro.xls generado con exito!
PAUSE


if not exist OK mkdir OK
:proceso
cls
echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³        Proceso de movimiento a carpeta OK       ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo _
echo Copie Nombre archivos a procesar:
set /p archivo="> "
if not exist %archivo% goto noarch
cls

echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³             PROCESANDO ÛÛÛ²²²±±±°°°             ³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
move %archivo% OK\
goto proceso
cls

:noarch
cls
echo    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo    ³°°°°°°°°°°°°°°°ARCHIVO INEXISTENTE!°°°°°°°°°°°°°°³
echo    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo _
echo %archivo% No existe.
pause
cls
goto proceso
------------------------------------------------------------------------------------------
En el archivo filtro.xls utilizo =A1=A2 para saber cuales estan repetidas. Aplico filtros, selecciono las que sean verdaderas y las copio en el batch.


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #61 en: 23 Junio 2008, 18:33 pm »

Que fue lo que no te funcionó? :¬¬
Te salió algún tipo de mensaje?

Cambiaste correctamente las rutas en las líneas 3 y 19?

Modificaste las líneas de comparación que agregue al final?
Yo lo he probado y debería de funcionar todo correctamente
Por si las dudas, doble click para ejecutar  :xD

Saludos

Prueba esto

Código:
set objfso = createobject("scripting.filesystemobject")
set lacarpeta = objfso.getfolder("d:\carpetacontenedora")
set afil = lacarpeta.files
movidos = 0
for each f in afil
set elarchivo = objfso.OpenTextFile(f.path,1)
contenido = elarchivo.readall
primero = instr(1,contenido,"000323               0000000000000000000000000000000000000000",1)
segundo = instr(1,contenido,"000333               0000000000000000000000000000000000000000",1)
elarchivo.close
if primero =0 or segundo=0 then
objfso.movefile f.path,"d:\pronto\"&f.name
movidos = movidos+1
end if
next
if movidos = 0 then
msgbox "No se ha movido ningún archivo"
else
msgbox "Se han movido " & movidos &" archivos"
end if

Cambiar línea 2
Cambiar línea 9 (de abajo para arriba XD)

Saludos



« Última modificación: 23 Junio 2008, 18:45 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #62 en: 23 Junio 2008, 18:43 pm »

linea 3:
set lacarpeta = objfso.getfolder("C:\Documents and Settings\tesdcv01\Escritorio\pruebas")
linea 19:
objfso.movefile f.path,"C:\Documents and Settings\tesdcv01\Escritorio\pruebas\ok"&f.name
La 19 es la que saca error
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #63 en: 23 Junio 2008, 18:47 pm »

Te he modificado el anterior mensaje para que además el script devuelva un mensaje de cuantos archivos se movieron.....

Tu problema es sencillo

Citar
objfso.movefile f.path,"C:\Documents and Settings\tesdcv01\Escritorio\pruebas\ok\"&f.name

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #64 en: 23 Junio 2008, 19:03 pm »

set objfso = createobject("scripting.filesystemobject")
set lacarpeta = objfso.getfolder("C:\Documents and Settings\tesdcv01\Escritorio\pruebas")
set afil = lacarpeta.files
movidos = 0
for each f in afil
set elarchivo = objfso.OpenTextFile(f.path,1)
contenido = elarchivo.readall
primero = instr(1,contenido,"000323               0000000000000000000000000000000000000000",1)
segundo = instr(1,contenido,"000333               0000000000000000000000000000000000000000",1)
elarchivo.close
if primero =0 or segundo=0 then
objfso.movefile f.path,"C:\Documents and Settings\tesdcv01\Escritorio\pruebas\ok"&f.name
movidos = movidos+1
end if
next
if movidos = 0 then
msgbox "No se ha movido ningún archivo"
else
msgbox "Se han movido " & movidos &" archivos"
end if
*********************************************
Me renombró los archivos asi:
okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokok2008-06-05_641006_NI_891501133_EPS018_88_I
jeje la verdad no tengo la mas remota idea de por qué.
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #65 en: 23 Junio 2008, 19:06 pm »

Menos mal que es de pruebas  :xD

Es porque en esta línea.....
Citar
objfso.movefile f.path,"C:\Documents and Settings\tesdcv01\Escritorio\pruebas\ok"&f.name
Debe de haber un slash invertido después del ok
Citar
objfso.movefile f.path,"C:\Documents and Settings\tesdcv01\Escritorio\pruebas\ok\"&f.name

Ahora si.... tiene que funcionar bien  ;)

Saludos

En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #66 en: 23 Junio 2008, 20:29 pm »

mmmm ahora me aparece un error en linea 12...

set objfso = createobject("scripting.filesystemobject")
set lacarpeta = objfso.getfolder("C:\Documents and Settings\tesdcv01\Escritorio\pruebas\")
set afil = lacarpeta.files
movidos = 0
for each f in afil
set elarchivo = objfso.OpenTextFile(f.path,1)
contenido = elarchivo.readall
primero = instr(1,contenido,"000323               0000000000000000000000000000000000000000",1)
segundo = instr(1,contenido,"000333               0000000000000000000000000000000000000000",1)
elarchivo.close
if primero =0 or segundo=0 then
objfso.movefile f.path,"C:\Documents and Settings\tesdcv01\Escritorio\pruebas\ok\"&f.name
movidos = movidos+1
end if
next
if movidos = 0 then
msgbox "No se ha movido ningún archivo"
else
msgbox "Se han movido " & movidos &" archivos"
end if
 :-\
En línea

Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #67 en: 23 Junio 2008, 20:37 pm »

Lo que tambien me puede servir es un for que lea un txt con estos datos:

2008-06-19_590059_NI_890807898_EPS018_86_I.TXT
2008-06-19_621451_NI_890706425_EPS018_86_I.TXT
2008-06-19_621451_NI_890706425_EPS018_86_I.TXT
2008-06-19_621452_NI_890706425_EPS018_86_I.TXT
2008-06-19_621517_NI_810001583_EPS018_86_I.TXT
2008-06-20_102019121_CC_94487480_EPS018_51_I.TXT
2008-06-20_102019121_CC_94487480_EPS018_51_I.TXT
2008-06-20_102088573_CC_5931385_EPS018_01_I.TXT
2008-06-20_102718305_CC_33966379_EPS018_01_I.TXT
2008-06-20_102718305_CC_33966379_EPS018_01_I.TXT
2008-06-20_103000920_CC_31992855_EPS018_01_I.TXT
2008-06-20_103000920_CC_31992855_EPS018_01_I.TXT
2008-06-20_103161002_CC_16638978_EPS018_01_I.TXT

Y me cree un txt con las lineas que se repiten.
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #68 en: 23 Junio 2008, 20:44 pm »

Te había enviado un privado, para no seguir llenando el post  :xD

Cual es el texto que aparece en el error?
También hay que tener en cuenta que la carpeta C:\Documents and Settings\tesdcv01\Escritorio\pruebas\ok debe de existir

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Shinseiki86

Desconectado Desconectado

Mensajes: 33


Loading...


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #69 en: 24 Junio 2008, 14:52 pm »

Gracias Novlucker ya funciona.  ;D

Aunque por curieosidad... como me refiero a la linea siguiente de un archivo? :huh:
No creo que se entienda asi... si tengo un txt asi:
A
B
B
C

Y quiero comparar lineas, linea1==lineasiguente... y que sea recursivo... y en batch...
(falta que quiera que tambien me sirva un café)
En línea

Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programacion avanzada - Inline Asm/C (Muy bueno)
Programación Visual Basic
Tughack 4 2,746 Último mensaje 8 Agosto 2007, 02:40 am
por Freeze.
[G] Libro Programacion Avanzada en Ensamblador!!!
ASM
-Gosw- 3 8,518 Último mensaje 27 Mayo 2009, 10:40 am
por -Gosw-
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 8,970 Último mensaje 19 Junio 2009, 18:08 pm
por frank30
[Taller] Programacion Avanzada en C/C++ (Linux)
Programación C/C++
[L]ord [R]NA 0 6,364 Último mensaje 4 Octubre 2010, 04:53 am
por [L]ord [R]NA
Unix programacion avanzada
Unix/Unix-Like
sesiopower 1 7,506 Último mensaje 1 Marzo 2014, 20:13 pm
por Joe Fraddy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines