none
Script VBs de Sincronização de Arquivos RRS feed

  • Pergunta

  • Bom dia! Gostaria de ajuda com um script de sincronização de arquivos do servidor para o cliente da seguinte forma:

    Declarar variáveis para os nomes dos executáveis e do diretório do servidor e cliente, pois alguns clientes tem diretório diferente, ai para facilitar a alteração do script para pôr em cada cliente, modificar só as variáveis.

    Ex.:

    dirServidor = "\\10.0.0.1\SERVIDOR\"

    dirCliente = "C:\CLIENTE\"

    Executavel1 = "ISAtacadista.exe"

    Executavel2 = "ISBusiness.exe"

    Na inicialização do computador, verificar:

    - Se existe o diretório no servidor e no cliente

    - Se a versão do servidor tiver uma data de modificação mais nova, copiar para o cliente

    segunda-feira, 2 de maio de 2016 14:33

Todas as Respostas

  • Não testei nem otimizei o código, mas seria mais ou menos nesta lógica:

    dirServidor = "\\10.0.0.1\SERVIDOR"
    
    dirCliente = "\\10.0.0.1\SERVIDOR\"
    
    Executavel1 = "ISAtacadista.exe"
    
    Executavel2 = "ISBusiness.exe"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FolderExists(dirServidor) Then
     	If objFSO.FolderExists(dirCliente) Then
    		Set objFile1 = objFSO.GetFile(dirServidor & "\" & Executavel1)
    		Set objFile2 = objFSO.GetFile(dirCliente & "\" & Executavel1)
    		If CDate(objFile1.DateLastModified) <> CDate(objFile2.DateLastModified) Then
    			FileCopy dirServidor & "\" & Executavel1, dirCliente & "\" & Executavel1, True
    		End If
    		Set objFile3 = objFSO.GetFile(dirServidor & "\" & Executavel2)
    		Set objFile4 = objFSO.GetFile(dirCliente & "\" & Executavel2)
    		If CDate(objFile3.DateLastModified) <> CDate(objFile4.DateLastModified) Then
    			objFSO.CopyFile dirServidor & "\" & Executavel2, dirCliente & "\" & Executavel2, True
    		End If
    	End If
    Else
     	Wscript.Echo "Diretório(s) não existe(m)"
    End If
    

    terça-feira, 3 de maio de 2016 00:45
  • Não testei nem otimizei o código, mas seria mais ou menos nesta lógica:

    dirServidor = "\\10.0.0.1\SERVIDOR"
    
    dirCliente = "\\10.0.0.1\SERVIDOR\"
    
    Executavel1 = "ISAtacadista.exe"
    
    Executavel2 = "ISBusiness.exe"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FolderExists(dirServidor) Then
     	If objFSO.FolderExists(dirCliente) Then
    		Set objFile1 = objFSO.GetFile(dirServidor & "\" & Executavel1)
    		Set objFile2 = objFSO.GetFile(dirCliente & "\" & Executavel1)
    		If CDate(objFile1.DateLastModified) <> CDate(objFile2.DateLastModified) Then
    			FileCopy dirServidor & "\" & Executavel1, dirCliente & "\" & Executavel1, True
    		End If
    		Set objFile3 = objFSO.GetFile(dirServidor & "\" & Executavel2)
    		Set objFile4 = objFSO.GetFile(dirCliente & "\" & Executavel2)
    		If CDate(objFile3.DateLastModified) <> CDate(objFile4.DateLastModified) Then
    			objFSO.CopyFile dirServidor & "\" & Executavel2, dirCliente & "\" & Executavel2, True
    		End If
    	End If
    Else
     	Wscript.Echo "Diretório(s) não existe(m)"
    End If

    Obrigado mesmo pela "luz", André Renato Furtado!

    Dei uma modificada para o meu caso, quem precisar está o script, comentado.

       

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Const Overwrite = True
    dirServidor = "D:\SERVIDOR"
    dirCliente = "D:\CLIENTE"
    'Modulos Sincronizador: ISAtacadista, ISBusiness, ISPafEcf, ISNotaFiscal, ISFaturamento, ISPontoDeVendas

    If objFSO.FolderExists(dirServidor) And objFSO.FolderExists(dirCliente) Then

    '-=-=-=-=-=-=-=-=-=-=-=-=- ISAtacadista.exe -=-=-=-=-=-=-=-=-=-=-=-=-
    If objFSO.FileExists(dirServidor & "\" & "ISAtacadista.exe") Then
    Set objFile1 = objFSO.GetFile(dirServidor & "\" & "ISAtacadista.exe")

    If objFSO.FileExists(dirCliente & "\" & "ISAtacadista.exe") Then
    Set objFile2 = objFSO.GetFile(dirCliente & "\" & "ISAtacadista.exe")

    If objFile1.DateLastModified > objFile2.DateLastModified Or objFile1.DateLastModified < objFile2.DateLastModified Then
    'Nova Versão! Copiando do servidor...
    objFSO.CopyFile objFile1, dirCliente & "\", Overwrite
    Else
    'Versão igual, nada será modificado!
    End If

    Else
    'ISAtacadista inexistente! Copiando do servidor..."
    objFSO.CopyFile objFile1, dirCliente & "\", Overwrite

    End If

    Else
    WScript.Echo "URGENTE! Entre em contato com a Intech Sistemas"

    End If

    End If

    quarta-feira, 4 de maio de 2016 14:31