Boa tarde, pessoal do fórum. Espero que não seja repost esse tópico, fiz uma pesquisa rápida e não encontrei nada relacionado. Caso seja repost, por favor apenas apontem o tópico que contem a dúvida resolvida. Vamos à situação: Eu preciso de um script para comparar dois arquivos e copiar o de origem (na rede), caso ele seja mais novo, sobrescrevendo o de destino. Fuçando na web achei o código que vou postar logo abaixo, até aí tudo bem, ele compara e copia sem problemas, desde que eu use como destino um caminho absoluto (C:\users\shimpato yamazaki\), porém eu preciso que ele utilize como destino a variável de ambiente %USERPROFILE%, assim fica um único código para todos os usuários que fizerem logon, em qualquer computador (vou colocar o script numa gpo). 'Nome do arquivo a ser comparado e copiado
strArquivo = "gestao.exe"
'Pasta origem do arquivo
strOrigem="C:\teste\"
'Pasta destino do arquivo
Dim WshS
Set WshS = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
'Expand Environment
usrProfile = WshS.ExpandEnvironmentStrings("%UserProfile%")
set objFSO = CreateObject("Scripting.FileSystemObject")
set Origem = objFSO.getFile (strOrigem & strArquivo)
set Destino = objFSO.getFile (usrProfile & strArquivo)
wscript.echo Origem.path &" " & Origem.dateLastModified
wscript.echo Destino.path & " " & Destino.dateLastModified
If objFSO.FileExists(strDestino & strArquivo) Then
if Origem.dateLastModified > Destino.dateLastModified Then
objFSO.DeleteFile(strDestino & strArquivo)
objFSO.CopyFile strOrigem & strArquivo , strDestino & strArquivo, OverwriteExisting
End if
Else
objFSO.CopyFile strOrigem & strArquivo , strDestino & strArquivo, OverwriteExisting
End if Da forma como está o código acima, quando executo ele dá erro na linha 17 - Caract.: 1 - Arquivo não encontrado - Código: 800A0035. Se entendi bem, ele não está justamente chegando até o USERPROFILE, por isso dá que não existe. Agradeço qualquer ajuda.. e desculpem pelo post longo. Obrigado.