Autor
|
Tema: Esto se puede hacer con VBS o Batch? (Leído 7,062 veces)
|
CiscoIT
Desconectado
Mensajes: 7
|
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:\ <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> <?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
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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
Mensajes: 7
|
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: 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
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Si las rutas bases son las mismas, podrías simplemente utilizar una variable, algo como ... set objfso=createobject("scripting.filesystemobject") Carpeta = "bin" objfso.deletefolder("C:\WS_destino\Cuentas.WebServices\" & Carpeta) objfso.copyfolder"H:\WS_origen\Cuentas.WebServices\" & Carpeta,"C:\WS_destino\Cuentas.WebServices\" & Carpeta,true objfso.deletefolder("C:\WS_destino\General.WebServices\" & Carpeta) objfso.copyfolder"H:\WS_origen\General.WebServices\" & Carpeta,"C:\WS_destino\General.WebServices\" & Carpeta,true objfso.deletefolder("C:\WS_destino\Interfaces.WebServices\" & Carpeta) objfso.copyfolder"H:\WS_origen\Interfaces.WebServices\" & Carpeta,"C:\WS_destino\Interfaces.WebServices\" & Carpeta,true objfso.deletefolder("C:\WS_destino\Mensajes.WebServices\" & Carpeta) objfso.copyfolder"H:\WS_origen\Mensajes.WebServices\" & Carpeta,"C:\WS_destino\Mensajes.WebServices\" & Carpeta,true objfso.deletefolder("C:\WS_destino\Operaciones.WebServices\" & Carpeta) objfso.copyfolder"H:\WS_origen\Operaciones.WebServices\" & Carpeta,"C:\WS_destino\Operaciones.WebServices\" & Carpeta,true objfso.deletefolder("C:\WS_destino\Productos.WebServices\" & Carpeta) objfso.copyfolder"H:\WS_origen\Productos.WebServices\" & Carpeta,"C:\WS_destino\Productos.WebServices\" & Carpeta,true objfso.deletefolder("C:\WS_destino\Riesgos.WebServices\" & Carpeta) objfso.copyfolder"H:\WS_origen\Riesgos.WebServices\" & Carpeta,"C:\WS_destino\Riesgos.WebServices\" & Carpeta,true objfso.deletefolder("C:\WS_destino\Seguridad.WebServices\" & Carpeta) 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
Mensajes: 7
|
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. 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
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Lo estas concatenando mal, los simbolos & son como +, así que tienes Origen/Destino & (+) "Cuentas ..." 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
Saludos
|
|
« Última modificación: 26 Octubre 2009, 00:27 am 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
Mensajes: 7
|
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
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
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í Puedes poner un msgbox al final del script, algo como .. 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
Mensajes: 7
|
Gracias de nuevo Novlucker. Te hago otra consulta. Tengo varios archivos xml en distintas carpetas donde tienen varias lineas con el siguiente path 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!!!! <configSection name="CacheDependencies"> <configCache enabled="false" refresh="1 * * * *" /> path="C:\Inetpub\wwwroot\ruta\ruta2\General.WebServices\CacheDependencies.xml"/> </configSection>
|
|
|
En línea
|
|
|
|
CiscoIT
Desconectado
Mensajes: 7
|
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? 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
Gracias por la ayuda!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[BATCH] en caso de infeccion por troyanos esto te puede servir
Scripting
|
Audiofilo84
|
1
|
3,905
|
13 Febrero 2011, 20:44 pm
por SuperDraco
|
|
|
se puede hacer esto con variables? [batch]
Scripting
|
morenochico
|
3
|
3,589
|
14 Septiembre 2011, 22:44 pm
por leogtz
|
|
|
Se puede hacer esto con un BATCH??? ( Modificar algo en el registro )
Scripting
|
beholdthe
|
5
|
5,430
|
30 Noviembre 2011, 20:13 pm
por beholdthe
|
|
|
[Ayuda] Se puede hacer esto en Batch...!!!
Scripting
|
user_foro
|
4
|
3,393
|
7 Agosto 2015, 23:24 pm
por user_foro
|
|
|
Se puede Hacer un Batch que haga un nestat
Scripting
|
EARM
|
4
|
2,848
|
15 Diciembre 2015, 14:47 pm
por EARM
|
|