'************************************************************************************************************** '* Programa: CambioBasesDatosMOSS.vbs * '* Descripcion: Script usado para mover Bases de Datos desde apporigen a appdestino. * '* Autor: Alberto Dominguez * '************************************************************************************************************** Option Explicit 'On error resume next '*************************** '* Constantes * '*************************** Const FICHEROBDS="c:\temp\BasesDatos.txt" Const FICHEROLOG="c:\temp\BasesDatos.log" Const DBSERVER="SERVIDOR\INSTANCIASQL" Const APPORIGEN="http://urlapporigen" Const APPDESTINO="http://urlappdestino" Const LECTURA = 1 Const ESCRITURA = 2 '*************************** '* Variables * '*************************** Dim oWSH : Set oWSH = CreateObject( "WScript.Shell" ) Dim t, objFSO, objFichero Set objFSO = CreateObject("scripting.filesystemobject") Dim arrLineasFichero() Dim errores() Dim Linea, basedatos, lineaLog, nRet '*************************** '* Programa Principal * '*************************** If objFSO.FileExists(FICHEROBDS) Then Set objFichero = objFSO.opentextfile(FICHEROBDS, LECTURA) t=0 Do Until objFichero.AtEndOfStream ReDim Preserve arrLineasFichero(t) Linea=objFichero.ReadLine arrLineasFichero(t) = Linea t = t + 1 Loop objFichero.Close Set objFichero = objFSO.opentextfile(FICHEROLOG, ESCRITURA) For Each basedatos in arrLineasFichero nRet = oWSH.Run("stsadm.exe -o deletecontentdb -url " & APPORIGEN & " -databasename " & basedatos & " -databaseserver " & DBSERVER, 0, True ) If nRet <> 0 Then lineaLog = basedatos & ": ERROR en Borrado" Else lineaLog = basedatos & ": OK en Borrado" End If objFichero.WriteLine(lineaLog) nRet = oWSH.Run("stsadm.exe -o addcontentdb -url " & APPDESTINO & " -databasename " & basedatos & " -databaseserver " & DBSERVER & " -sitewarning 5 -sitemax 10", 0, True ) If nRet <> 0 Then lineaLog = basedatos & ": ERROR en Añadido" Else lineaLog = basedatos & ": OK en Añadido" End If objFichero.WriteLine(lineaLog) Next objFichero.Close End If WScript.Quit
Recomiendo meter en código en un archivo .vbs y ejecutarlo con cscript para evitar la formación de hilos cmd que no veamos.