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?
@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
Cita de: Karcrack en 3 Febrero 2011, 22:10 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.
Cita de: Karcrack en 3 Febrero 2011, 22:10 PM
Estoy harto de ver estos codigos tan repetitivos en BATCH... y me pregunto... no se pueden acortar con un simple bucle?!
Sí.
Sin probar:
@echo off
set "hosts=%windir%\System32\drivers\etc\hosts"
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 (
echo 127.0.0.1 %%_ >> %hosts%
)
Si colocaras los sitios en un archivo llamado "sitios.txt", podrías hacer algo como:
@for /f "tokens=*" %%_ in (sitios.txt) do (echo 127.0.0.1 >> %windir%\System32\drivers\etc\hosts)
Las dudas sobre Batch van en Scripting.
Muy buena respuesta, muchas gracias :)
Ya doy el tema por zanjado :)
Cita de: Leo Gutiérrez. en 3 Febrero 2011, 22:37 PM
Las dudas sobre Batch van en Scripting.
Si, obvio, pero no me fije donde estaba posteando :-[ Gracias por moverlo ;)
y para lo de poner siempre >> %hosts% podes hacer algo asi:
@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