Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: paynetex en 24 Mayo 2013, 21:51 pm



Título: [BATCH] Comparación de textos
Publicado por: paynetex en 24 Mayo 2013, 21:51 pm
el problema es el siguiente, tengo
dos archivos

archivo1.txt

Administrator
All Users
usuario1
usuario2

archivo2.txt

Administrator
All Users

resultado

usuario1
usuario2

Lo que me gustaria generar de estos 2 txt que tengo, un txt "Resultado" que contenga la diferencia de estos dos, o sea como el ejemplo anterior, el resultado deberia mostrar:

usuario1
usuario2

trate de hacerlo con find y findstr pero no resulto no supe como :/


Título: Re: [BATCH] Comparación de textos
Publicado por: Eleкtro en 24 Mayo 2013, 22:13 pm
Código:
FC "1.txt" "2.txt"
Código:
Comparando archivos 1.txt y 2.TXT
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****



Código:
FC "1.txt" "2.txt" | MORE +1
Código:
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****



Código:
FC "1.txt" "2.txt"  | MORE +1 | findstr /V "^\*\*\*\*\* .+$" | Findstr "."
Código:
usuario1
usuario2

Saludos


Título: Re: [BATCH] Comparación de textos
Publicado por: flony en 24 Mayo 2013, 23:51 pm
Supuestos

1)   El 1.txt es mas chico que el 2.txt
2)   El 1.txt debe tener la informacion que consideramos “verdadera” y el 2.txt tiene informacion de mas “no verdadera” o renglones con informacion en exceso
3)   El 1.txt y el 2.txt tienen informacion similar
4)   El 1.txt se llama IDEAL2.txt y el 2.txt se llama lista2.txt
5)   Los renglones iguales se borrar del los dos txt
6)   El 1.txt queda vacio y en el 2.txt quedan las diferencias

Código:
@echo off
:contador1
  set /a contador=0
for /f "tokens=*" %%_ in (IDEAL2.txt) do (
    set /a contador+=1)
 set /a var=%contador%

:ini
 if %var%==0 (goto fin) else set /A var=%var%-1
 <"IDEAL2.txt" set /p "string="
 set "string"
 for /f "tokens=1 delims=:" %%_ in ('findstr /i /n /r "^%string%" "lista2.txt"') do (set "n_line=%%_")
 (ECHO %n_line%dECHO E) | EDLIN /B lista2.txt > nul 2>&1
 (ECHO 1dECHO E) | EDLIN /B IDEAL2.txt > nul 2>&1
goto ini
:fin
echo listo ;)