elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Esto se puede hacer con VBS o Batch?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Esto se puede hacer con VBS o Batch?  (Leído 4,228 veces)
CiscoIT

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Esto se puede hacer con VBS o Batch?
« en: 24 Octubre 2009, 05:14 »

Estimados:

Este es mi 1er post. Estoy dando los 1ros pasos de programación y en el trabajo tengo que hacer lo siguiente y quisiera saber si con vbs o batch se puede hacer.
Tengo varias carpetas con archivos web.config que se encuentran en la carpeta \inetpub\wwwroot en el disco C:\

Código:
<configSection name="WSProxies">
<configCache enabled="false" refresh="1 * * * *" />
     <configProvider assembly="Microsoft.ApplicationBlocks.ConfigurationManagement,Version=2.4.5.610,Culture=neutral,PublicKeyToken=ab13f2b83fb40ead"
                type="Microsoft.ApplicationBlocks.ConfigurationManagement.Storage.XmlFileStorage"
                refreshOnChange="false"
                signed="false"
                encrypted="false"
                path="C:\Inetpub\wwwroot\ruta\XXX.Sime.General.WebServices\WSProxies.xml" />
</configSection>

Código:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<CONTABLE>
    <XmlSerializableHashtable xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Entries>
<Entry>     
<key xsi:type="xsd:string">Contoso </key>
<value xsi:type="xsd:string">Provider=SQLOLEDB.1;Persist Security Info=False;Password=pototo;User ID=usuario;Initial Catalog=Base_de_datos;Data Source=SQLServer;
</value>
</Entry>
</Entries>
    </XmlSerializableHashtable>
</CONTABLE>
</configuration>
en donde varias veces los tengo que editar y modificar el path adonde apuntan, como así también en otros archivos xml, tengo que modificar los nombres del SQL Server, el y el nombre de la base de datos.

Hay manera de poderlo hacer mediante un script en vbs o en batch?
Recién me bajé unos pdf de un tutorial que encontré tuyo en el foro "elhacker" y encontré otro de Batch avanzado.

Con la info de los tutoriales que hay en el foro, me alcanza y sobra para hacer lo que quiero.
O es mejor hacerlo en vb2005.net para todo esto?

Me gustaría luego con el tiempo de hacerle un form donde poner la ruta destino donde hay que apuntar como así los nombres de los server y bases que se deben cambiar y las carpetas a modificar.

Estoy seguro que no debe ser difícil pero para alguien que nunca programó como yo, realmente no sé por donde empezar.

Asimismo, tienen algún librito o apunte para recomendarme sobre la programación de estas cosas?

Gracias y saludos.


En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #1 en: 24 Octubre 2009, 05:31 »

Como poder se puede.

Para abrir archivos de texto, modificar algo y ya debería de ser sencillo, y alcanza con el objeto FSO, y quizás el objshell, son los dos primeros capitulos del tuto de vbs que has bajado.

Con respecto a los de los formularios, en vbs no puedes crear formularios, si HTA's, que son muy similares a las páginas webs, pero que se vuelven algo así como un ejecutable (solo poniendoles extensión HTA), pero sin lugar a dudas, en VB o VB.NET lo tendías muy pero muy fácil, ya que el enfoque que tienen va más a esto.

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
CiscoIT

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Esto se puede hacer con VBS?
« Respuesta #2 en: 25 Octubre 2009, 12:04 »

Hola Novlucker, siguiendo tu tutorial hice este simple script. Primero borro la carpeta destino "BIN" y luego copia la misma del origen y la pego en el destino. Funciona pero como hago para que cuando tenga que apuntar a distintos path de destino, no tenga que editar el script por completo línea por línea? Se puede poner una variable que trabaje de path origen y path destino de todos los niveles que están antes de la carpeta BIN?

La otra duda es si se puede agregar un msgbox que me diga que la copia de todas las carpetas finalizó?

Aquí el script:
Código:
set objfso=createobject("scripting.filesystemobject")

objfso.deletefolder("C:\WS_destino\Cuentas.WebServices\bin")
objfso.copyfolder"H:\WS_origen\Cuentas.WebServices\bin","C:\WS_destino\Cuentas.WebServices\bin",true

objfso.deletefolder("C:\WS_destino\General.WebServices\bin")
objfso.copyfolder"H:\WS_origen\General.WebServices\bin","C:\WS_destino\General.WebServices\bin",true

objfso.deletefolder("C:\WS_destino\Interfaces.WebServices\bin")
objfso.copyfolder"H:\WS_origen\Interfaces.WebServices\bin","C:\WS_destino\Interfaces.WebServices\bin",true

objfso.deletefolder("C:\WS_destino\Mensajes.WebServices\bin")
objfso.copyfolder"H:\WS_origen\Mensajes.WebServices\bin","C:\WS_destino\Mensajes.WebServices\bin",true

objfso.deletefolder("C:\WS_destino\Operaciones.WebServices\bin")
objfso.copyfolder"H:\WS_origen\Operaciones.WebServices\bin","C:\WS_destino\Operaciones.WebServices\bin",true

objfso.deletefolder("C:\WS_destino\Productos.WebServices\bin")
objfso.copyfolder"H:\WS_origen\Productos.WebServices\bin","C:\WS_destino\Productos.WebServices\bin",true

objfso.deletefolder("C:\WS_destino\Riesgos.WebServices\bin")
objfso.copyfolder"H:\WS_origen\Riesgos.WebServices\bin","C:\WS_destino\Riesgos.WebServices\bin",true

objfso.deletefolder("C:\WS_destino\Seguridad.WebServices\bin")
objfso.copyfolder"H:\WS_origen\Seguridad.WebServices\bin","C:\WS_destino\Seguridad.WebServices\bin",true

Gracias por tu ayuda
En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #3 en: 25 Octubre 2009, 21:52 »

Si las rutas bases son las mismas, podrías simplemente utilizar una variable, algo como ...

Código
  1. set objfso=createobject("scripting.filesystemobject")
  2.  
  3. Carpeta = "bin"
  4.  
  5. objfso.deletefolder("C:\WS_destino\Cuentas.WebServices\" & Carpeta)
  6. objfso.copyfolder"H:\WS_origen\Cuentas.WebServices\" & Carpeta,"C:\WS_destino\Cuentas.WebServices\" & Carpeta,true
  7.  
  8. objfso.deletefolder("C:\WS_destino\General.WebServices\" & Carpeta)
  9. objfso.copyfolder"H:\WS_origen\General.WebServices\" & Carpeta,"C:\WS_destino\General.WebServices\" & Carpeta,true
  10.  
  11. objfso.deletefolder("C:\WS_destino\Interfaces.WebServices\" & Carpeta)
  12. objfso.copyfolder"H:\WS_origen\Interfaces.WebServices\" & Carpeta,"C:\WS_destino\Interfaces.WebServices\" & Carpeta,true
  13.  
  14. objfso.deletefolder("C:\WS_destino\Mensajes.WebServices\" & Carpeta)
  15. objfso.copyfolder"H:\WS_origen\Mensajes.WebServices\" & Carpeta,"C:\WS_destino\Mensajes.WebServices\" & Carpeta,true
  16.  
  17. objfso.deletefolder("C:\WS_destino\Operaciones.WebServices\" & Carpeta)
  18. objfso.copyfolder"H:\WS_origen\Operaciones.WebServices\" & Carpeta,"C:\WS_destino\Operaciones.WebServices\" & Carpeta,true
  19.  
  20. objfso.deletefolder("C:\WS_destino\Productos.WebServices\" & Carpeta)
  21. objfso.copyfolder"H:\WS_origen\Productos.WebServices\" & Carpeta,"C:\WS_destino\Productos.WebServices\" & Carpeta,true
  22.  
  23. objfso.deletefolder("C:\WS_destino\Riesgos.WebServices\" & Carpeta)
  24. objfso.copyfolder"H:\WS_origen\Riesgos.WebServices\" & Carpeta,"C:\WS_destino\Riesgos.WebServices\" & Carpeta,true
  25.  
  26. objfso.deletefolder("C:\WS_destino\Seguridad.WebServices\" & Carpeta)
  27. objfso.copyfolder"H:\WS_origen\Seguridad.WebServices\" & Carpeta,"C:\WS_destino\Seguridad.WebServices\" & Carpeta,true
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
CiscoIT

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #4 en: 25 Octubre 2009, 22:17 »

Gracias Novlucker por responder.
En realidad lo que busco sería al reves como te pongo en este script que no me funcionó
Porque lo que cambia son los 1ros niveles de las rutas origen y destino, el resto sigue igual como te describo en el script.

Código:
set objfso=createobject("scripting.filesystemobject")
Origen = "C:\WS_origen\"
Destino = "C:\WS_destino\"

objfso.deletefolder & Destino ("Cuentas.WebServices\bin")
objfso.copyfolder & Origen "Cuentas.WebServices\bin", & Destino "Cuentas.WebServices\bin",true

objfso.deletefolder & Destino ("General.WebServices\bin")
objfso.copyfolder & Origen "General.WebServices\bin", & Destino "General.WebServices\bin",true
En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #5 en: 25 Octubre 2009, 22:20 »

Lo estas concatenando mal, los simbolos & son como +, así que tienes Origen/Destino & (+) "Cuentas ..."

Código
  1. set objfso=createobject("scripting.filesystemobject")
  2. Origen = "C:\WS_origen\"
  3. Destino = "C:\WS_destino\"
  4.  
  5. objfso.deletefolder Destino & "Cuentas.WebServices\bin"
  6. objfso.copyfolder Origen & "Cuentas.WebServices\bin", Destino & "Cuentas.WebServices\bin",true
  7.  
  8. objfso.deletefolder Destino & "General.WebServices\bin"
  9. objfso.copyfolder Origen & "General.WebServices\bin", Destino & "General.WebServices\bin",true

Saludos
« Última modificación: 26 Octubre 2009, 00:27 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
CiscoIT

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #6 en: 26 Octubre 2009, 00:20 »

Novlucker sos un MASTER, gracias!
el & de la línea deletefolder lo tuve que colocar después de Destino porque me daba error, pero con eso anduvo joya!

Hay forma de ponerle una barra de progreso o algún mensaje que indique que finalizó la copia de archivos?
Porque como esta acción se ejecuta en un server remoto que corre sobre maquina virtual y no localmente,
sería mejorcito que me avisara porque esas carpetas bin pesan como 40 Mb c/u y se tarda un poco en copiar todo.
En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #7 en: 26 Octubre 2009, 00:26 »

Es verdad lo del &, como lo miré rapidamente solo le preste atención al último, me di cuenta ahora cuando lo miraba de que también había que cambiarlo ahí  :P

Puedes poner un msgbox al final del script, algo como ..
Código
  1. msgbox "Proceso terminado"

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
CiscoIT

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #8 en: 26 Octubre 2009, 00:49 »

Gracias de nuevo Novlucker.

Te hago otra consulta. Tengo varios archivos xml en distintas carpetas donde tienen varias lineas con el siguiente path
Código:
path="C:\Inetpub\wwwroot\ruta\ruta2\General.WebServices\CacheDependencies.xml"
y la pregunta es como hago para que el script busque dentro del archivo todos los path y modifique la ruta por la que quiero en ese momento?
En tu tutorial me leí la parte de leer y escribir en archivos pero no logro poder realizar lo que busco.
Me darías una ayuda con eso?

Gracias de antemano!!!!

Código:
<configSection name="CacheDependencies">
            <configCache enabled="false" refresh="1 * * * *" />
             path="C:\Inetpub\wwwroot\ruta\ruta2\General.WebServices\CacheDependencies.xml"/>
        </configSection>
En línea

CiscoIT

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Esto se puede hacer con VBS o Batch?
« Respuesta #9 en: 26 Octubre 2009, 17:24 »

Novlucker, te hago una consulta, hoy probé el script en el trabajo y cuando quiere comenzar a borrar la 1er carpeta destino me tira error y me dice: "Permission Denied". Estoy corriéndo el script en un server 2003 que está virtualizado
Como puedo solucionar este inconveniente?

Código
  1. set objfso=createobject("scripting.filesystemobject")
  2. Origen = "C:\WS_origen\"
  3. Destino = "C:\WS_destino\"
  4.  
  5. objfso.deletefolder Destino & "Cuentas.WebServices\bin"
  6. objfso.copyfolder Origen & "Cuentas.WebServices\bin", Destino & "Cuentas.WebServices\bin",true

Gracias por la ayuda!!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[BATCH] en caso de infeccion por troyanos esto te puede servir
Scripting
Audiofilo84 1 2,787 Último mensaje 13 Febrero 2011, 20:44
por SuperDraco
se puede hacer esto con variables? [batch]
Scripting
morenochico 3 2,303 Último mensaje 14 Septiembre 2011, 22:44
por leogtz
Se puede hacer esto con un BATCH??? ( Modificar algo en el registro )
Scripting
beholdthe 5 3,662 Último mensaje 30 Noviembre 2011, 20:13
por beholdthe
[Ayuda] Se puede hacer esto en Batch...!!!
Scripting
user_foro 4 1,763 Último mensaje 7 Agosto 2015, 23:24
por user_foro
Se puede Hacer un Batch que haga un nestat
Scripting
EARM 4 1,278 Último mensaje 15 Diciembre 2015, 14:47
por EARM
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines