Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Binary_Death

#411
Scripting / Re: [Batch] Virulator 1.0c
17 Julio 2012, 19:21 PM
Creo que nuestro amigo de arriba tiene ganas de traducir al alemán  :xD si cuadra el se ofrece (no lo pongo en su boca, ¡eh!  :laugh:)

EleKtro, está muy completo tu generador. No me suelen gustar este tipo de códigos, pero hay que reconocer que lo hiciste en profundidad, como suele ser con tus programas.

EDIT:

Ahora que me fijo, sería bueno establecer un orden en el que las funciones se escribirán al generar el script final. Digo, no tiene mucho sentido hibernar el PC y que el código aún no haya llegado a su fin.
#412
Cita de: 79137913 en 17 Julio 2012, 19:10 PM
HOLA!!!

Sip, eso se llama venganza por las soluciones que colocaba yo eran de autoria propia y caia otro y hacia copypaste de otro lado.

GRACIAS POR LEER!!!

Ciertos códigos son tan comunes ya que ni se pueden considerar copiados, como este... que se usa en todos los programas brute force en batch.

Pero hay más formas de hacer lo mismo y muy divertidas. Venga, exprímanse un poco los sesos que siempre viene bien  :P
#413
Scripting / Re: [Reto Batch]Buscame en el log
17 Julio 2012, 19:12 PM
Bueno... ahora falta ver más soluciones  :P se me ocurre otra, que es la que pensaba aplicar yo al principio.
Pista: dividir el log.

Fue por eso que te pregunté si se podía modificar la estructura, aunque al final no le hice gran cosa  :xD
#414
Scripting / Re: [Reto Batch]Buscame en el log
17 Julio 2012, 18:59 PM

En el caso de mi ejemplo, mostrará únicamente el álbum "Live Era", la última línea  :P
#416
Scripting / Re: [Reto Batch]Buscame en el log
17 Julio 2012, 18:46 PM
Sí, así queda más sencillo.
Pero ten en cuenta que es muy práctico que diferencie los datos de lo que estás buscando. Por ejemplo, si con mi código pones:


21 de julio de 1987#Appetite for Destruction#17 millones
29 de noviembre de 1988#G N' R Lies#13.30 millones
17 de septiembre de 1991#Use Your Illusion I#26.40 millones
17 de septiembre de 1991#Use Your Illusion II#217.80 millones
23 de noviembre de 1993#The Spaghetti Incident?#6.00 millones
23 de noviembre de 2008#Chinese Democracy#22.00 millones
17 de noviembre de 1999#Live Era#13.00 millones


Fíjate. Tenemos en la primera línea 17 millones de ventas. Tenemos en la última línea "17 de noviembre", y por otro lado tenemos en la cuarta línea 217.80 millones de ventas.

Si buscamos 17 por ventas, en mi código aparecerá sólo la primera línea, que es la que tiene 17 millones de ventas en sí. En tú código aparecería la primera, la última y la cuarta.

Si buscamos 17 por fecha, en mi código aparecería sólo la última, en el tuyo todas... y así sucesivamente.

Otra cosa curiosa, es que en mi código si buscamos 17 por ventas, no aparecerá el 217 millones de ventas. Eso es práctico, porque no es lo mismo 17 que 217, mother of obvious.

En resumen, que sacrifiqué un poco de simplicidad por una mayor exactitud en la búsqueda  :P
#417
Scripting / Re: [Reto Batch]Buscame en el log
17 Julio 2012, 18:31 PM
Aquí tienes  ;)

Código (dos) [Seleccionar]

@echo off
setlocal enableextensions enabledelayedexpansion

set "strpos=\<"
0<nul,more/c
set/p "logfile=Log >> "
if not exist "%logfile%" exit

:_main
0<nul,more/c
echo: 1 - Search by year
echo: 2 - Search by album
echo: 3 - Search by sales
set/p "opnum= >> " & echo+
if %opnum% lss 1 goto :_main
if %opnum% gtr 3 goto :_main
call :_method[%opnum%]
goto :_main

:_method[1]
0<nul,more/c
set/p "year=Year >> "
1>nul,(echo.%year%|findstr /r "^[0-9]*$") || goto :_method[1]
call :__search "%year%"
pause 1>nul & goto :eof

:_method[2]
0<nul,more/c
set/p "name=Album >> "
1>nul,(echo.%name%|findstr /i /r "^[a-z]*$") || goto :_method[2]
set "strpos=" & call :__search "%name%"
pause 1>nul & goto :eof

:_method[3]
0<nul,more/c
set/p "sales=Number of sales >> "
1>nul,(echo.%sales%|findstr /r "^[0-9]*") || goto :_method[3]
call :__search "%sales%"
pause 1>nul & goto :eof

:__search
set "ltok=.xyz"
set "item=%%!ltok:~%opnum%,1!"
for /f "tokens=1,2,3 delims=# usebackq" %%x in (
"%logfile%"
) do (
1>nul,(echo.%item%|findstr /i /r "%strpos%%~1.*") && (
echo:%%x %%y %%z
)
)
set "strpos=\<"
goto :eof


El log, tiene que tener los datos separados por #. Así:


21 de julio de 1987#Appetite for Destruction#60.00 millones
29 de noviembre de 1988#G N' R Lies#13.30 millones
17 de septiembre de 1991#Use Your Illusion I#26.40 millones
17 de septiembre de 1991#Use Your Illusion II#24.80 millones
23 de noviembre de 1993#The Spaghetti Incident?#6.00 millones
23 de noviembre de 2008#Chinese Democracy#22.00 millones
23 de noviembre de 1999#Live Era#13.00 millones


¡Un saludo!

EDIT: Ligeramente optimizado.
#418
Scripting / Re: [Reto Batch]Buscame en el log
17 Julio 2012, 17:18 PM
¿La estructura del log ha de ser esa, o es libre?
#419
Y no, es que no se puede hacer con lo que batch trae por defecto.
NirCMD es una aplicación externa, que se puede descargar desde su página oficial:
http://www.nirsoft.net/utils/nircmd.html

Sirve para varias cosas, entre ellas, para lo que tú pides.

Es posible que también te sea útil cmdow, que creo que es menos pesado y es específico para tratar con ventanas. Además, algunos sistemas (pocos, pero yo sí que he visto algunos) lo traen incorporado.

¿Cuál es la desventaja de cmdow? Que es posible que tu AV lo detecte como posible amenaza. No es tal, pero como puede ser usado para ocultar según qué cosas, también es útil para malware y por eso es detectado a veces.

#420
Testeado. Como era de esperar funciona perfectamente (Windows 7).

Está genial que además de hacer scripts como PoC se hagan cosas como estas que se pueden usar con frecuencia en el día a día para personalizar Windows  :P