none
Script para comparar e substituir arquivo RRS feed

  • Pergunta

  • Fala galera,

     

    Estou tentando criar um script para fazer o seguinte:

    1. Compara o tamanho de um determinado arquivo na estação de trabalho com um arquivo que tenho em um servidor.

    2. Se o tamanho for diferente, ele copia o arquivo do servidor e substitui o da estação de trabalho.

     

    Não consigo achar nenhum script para fazer esta comparação.

    É possivel?

     

    Obrigado.

    quarta-feira, 23 de novembro de 2011 16:32

Respostas

  • Desenvolvi um script em VB assim:

    Dim filesys, shell, arquivo1, arquivo2
    
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set shell = WScript.CreateObject("WScript.Shell")
    
    Set arquivo1 = filesys.GetFile("C:\Pasta1\file1.txt")
    set arquivo2 = filesys.GetFile("C:\Pasta2\file2")
    
    If (arquivo1.size)<>(arquivo2.size) Then
    	On Error Resume Next
    	filesys.CopyFile arquivo1, arquivo2
    else
    	
    End If
    
    

    Agora minha dúvida é se o GetFile vai funcionar com um arquivo em um compartilhamento na rede. Ainda não consegui testar.

    • Marcado como Resposta JonathanRF quinta-feira, 24 de novembro de 2011 11:29
    quarta-feira, 23 de novembro de 2011 19:28

Todas as Respostas

  • Você pode utilizar um .BAT, a unica dependencia é ter o robocopy.exe nas estações de trabalho (onde o script será executado)

    A sintaxe é a seguint

    ROBOCOPY <pasta onde esta o arquivo no servidor> <pasta onde o arquivo esta na estação> <nome_do_arquivo>

    Exemplo, de um arquivo (\\seu_server\seu_share\pasta_servidor\arquivo.arq que sera copiado para a estação na pasta C:\pastalocal, repare que o nome do arquivo é o ultimo parametro.

    robocopy \\seu_server\seu_share\pasta_servidor  c:\pastalocal arquivo.arq
    
    

     

     


    Fábio de Paula Junior
    quarta-feira, 23 de novembro de 2011 18:00
    Moderador
  • Desenvolvi um script em VB assim:

    Dim filesys, shell, arquivo1, arquivo2
    
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set shell = WScript.CreateObject("WScript.Shell")
    
    Set arquivo1 = filesys.GetFile("C:\Pasta1\file1.txt")
    set arquivo2 = filesys.GetFile("C:\Pasta2\file2")
    
    If (arquivo1.size)<>(arquivo2.size) Then
    	On Error Resume Next
    	filesys.CopyFile arquivo1, arquivo2
    else
    	
    End If
    
    

    Agora minha dúvida é se o GetFile vai funcionar com um arquivo em um compartilhamento na rede. Ainda não consegui testar.

    • Marcado como Resposta JonathanRF quinta-feira, 24 de novembro de 2011 11:29
    quarta-feira, 23 de novembro de 2011 19:28
  • Sim, o script acima funcionou e o GetFile funciona com compartilhamentos.

    Sendo assim, fica a dica!

    quinta-feira, 24 de novembro de 2011 11:29