Test Foro de elhacker.net SMF 2.1

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
FC "1.txt" "2.txt"
Comparando archivos 1.txt y 2.TXT
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****





FC "1.txt" "2.txt" | MORE +1
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****





FC "1.txt" "2.txt"  | MORE +1 | findstr /V "^\*\*\*\*\* .+$" | Findstr "."
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

@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 ;)