[VBS] Copia de datos de usuario con RoboCopy desde un Visual Basic Script
Hola,
A veces, por necesidades de algún cliente, uno se pone a desempolvar scripts o a adaptarlos para que hagan otras cosas.
Hoy es uno de esos casos. Un cliente me ha pedido realizar la copia de datos de usuario entre diferentes FileServer leyendo a los usuarios a copiar desde un fichero de texto, poniendo un usuario por línea.
Bien, el resultado es este:
‘ Filename: vbsRobocopyParameters.vbs
‘ Revision: v1.0 – Paso de parámetros
‘ Author: Marc
‘
‘ Date: 23/06/2014
‘ Sintaxis: vbsRobocopyParameters pathToTXT
On Error Resume Next
‘**************** Definición de constantes **********************
Dim objFSObject, strFile, strFileContents, strCurrentUser, arrLineCollection
CONST ForReading = 1
‘Creamos el objeto de sistema para leer
Set objFSObject = CreateObject(«Scripting.FileSystemObject»)
‘*************** Petición de fichero y comprobación *************************
Correcto = False
Do While Correcto = False
If not objFSObject.FileExists(strFile) Then
strFile = InputBox(«Nombre del fichero .txt a leer», «Robocopy de usuarios»)
Else
Correcto = True
End If
Loop
‘********** Leemos el contenido del fichero para poder lanzar el Robocopy ************
strFileContents = objFSObject.OpenTextFile(strFile,ForReading).ReadAll
arrLineCollection = Split(strFileContents,vbCrLf)
objSource = «F:\Usuarios»
objDestination = «E:\Users»
‘Creamos el objeto de sistema para ejecutar Robocopy
set objShell = CreateObject(«Wscript.Shell»)
‘************* Bucle para ejecutar el Robocopy *****************************
For Each strCurrentUser in arrLineCollection
objSourceAll = ObjSource & «\» & strCurrentUser
objDestAll = objDestination & «\» & strCurrentUser
objCommand = «RoboCopy.Exe « & Chr(34) & objSourceAll & Chr(34) & » « & Chr(34) & objDestAll & Chr(34) & » /S /E /MIR /R:3 /W:10 /LOG:E:\robocopy\» & strCurrentUser & «.log»
objShell.Run(objCommand)
Next
Saludos,
Marc