none
Script de copia de pasta especifica RRS feed

  • Pergunta

  • Olá pessoal, td bem!
    Estou precisando criar um script que faça o seguinte: copie a pasta Sun e todo o seu conteúdo do default user conforme caminho abaixo que fica no C: para o perfil do usuário que fica no E:, estou testando o script abaixo, porem sem sucesso. Alguém pode me ajudar? A ideia é que todos os logons novos ou não essa pasta seja movida pro perfil do usuário.

    @echo off
    xcopy “C:\Users\Default\AppData\LocalLow\Sun\*.*” “E:\Users\%username%\AppData\LocalLow\Sun\” /E/Y/C/H/D
    cls
    exit

    Wesley Porto Rodrigues

    terça-feira, 4 de fevereiro de 2014 13:33

Respostas

  • Boa tarde Wesley,

    teste esse script ele é em VBS script, salve com a extensão .vbs (ex. Teste.vbs)

    Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set oShell = CreateObject("WScript.Shell")
    ProfileUser = oShell.ExpandEnvironmentStrings("%username%")
    
    oFSO.CopyFolder "C:\Users\Default\AppData\LocalLow\Sun" ,"E:\Users\"& ProfileUser & "\AppData\LocalLow\",true

    A linha assim fiz um teste e funcionou retirando o " \D"

    xcopy "C:\Users\Default\AppData\LocalLow\Sun" "E:\Users\%username%\AppData\LocalLow\Sun\" /E /Y /C /H


    att, Aparecido Deveza


    • Editado Aparecido Deveza terça-feira, 4 de fevereiro de 2014 14:51 cod
    • Sugerido como Resposta Edinaldo Junior terça-feira, 4 de fevereiro de 2014 19:39
    • Marcado como Resposta Wesley Sampa quinta-feira, 6 de fevereiro de 2014 01:00
    terça-feira, 4 de fevereiro de 2014 14:36
  • Blz, que bom que deu certo...

    com relação ao Xcopy o que da para fazer é colocar um ">logcopia.txt" no final do comando, mas eu recomendaria o uso do Robocopy, não uso muito mas é um ótima ferramenta, com ele vc pode controlar desde de log a envio de pacote, além de que ser der erro ou cair a rede ele volta a copia de onde parou...

    sua linha ficaria assim:

    Robocopy "E:\Users\%username%\AppData\LocalLow\Sun\" "E:\Users\%username%\AppData\LocalLow\Sun\" /E /COPYALL /V /LOG+:E:\teste.log


    att, Aparecido Deveza

    • Sugerido como Resposta Edinaldo Junior terça-feira, 4 de fevereiro de 2014 19:40
    • Marcado como Resposta Wesley Sampa quinta-feira, 6 de fevereiro de 2014 01:00
    terça-feira, 4 de fevereiro de 2014 18:18
  • Boa tarde José,

    ja existe um post com essa sua dúvida eu fiz teste e funciona, no estanto, o robocopy ja apresenta a porcentagem de cada arquivo copiado ....


    att, Aparecido Deveza

    • Sugerido como Resposta Edinaldo Junior quarta-feira, 5 de fevereiro de 2014 19:31
    • Marcado como Resposta Wesley Sampa quinta-feira, 6 de fevereiro de 2014 01:00
    quarta-feira, 5 de fevereiro de 2014 19:25

Todas as Respostas

  • Boa tarde Wesley,

    teste esse script ele é em VBS script, salve com a extensão .vbs (ex. Teste.vbs)

    Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set oShell = CreateObject("WScript.Shell")
    ProfileUser = oShell.ExpandEnvironmentStrings("%username%")
    
    oFSO.CopyFolder "C:\Users\Default\AppData\LocalLow\Sun" ,"E:\Users\"& ProfileUser & "\AppData\LocalLow\",true

    A linha assim fiz um teste e funcionou retirando o " \D"

    xcopy "C:\Users\Default\AppData\LocalLow\Sun" "E:\Users\%username%\AppData\LocalLow\Sun\" /E /Y /C /H


    att, Aparecido Deveza


    • Editado Aparecido Deveza terça-feira, 4 de fevereiro de 2014 14:51 cod
    • Sugerido como Resposta Edinaldo Junior terça-feira, 4 de fevereiro de 2014 19:39
    • Marcado como Resposta Wesley Sampa quinta-feira, 6 de fevereiro de 2014 01:00
    terça-feira, 4 de fevereiro de 2014 14:36
  • Olá Aparecido, MUITO OBRIGADO velhinho, funcionou perfeito, como no meu caso eu teria que fazer outra copia do E:\Users para uma area de um storage, usei a sua ideia e alterei os endereços e deu certo, um coisa que notei é que se a primeira copia falhar que é do default para o E: ele executa o segundo com erro porque não tem o que ele mover, achei show, mas me diz uma coisa, é possível implementar alguma linha que ele gere um log caso haja um erro durante a copia? ou até mesmo após a copia, tipo um log com o status dos logons daquele server em questão? Penso que isso pode ser de grande ajuda uma vez que ele me mostra quais usuários deram certo ou não.

    Wesley Porto Rodrigues

    terça-feira, 4 de fevereiro de 2014 16:15
  • Blz, que bom que deu certo...

    com relação ao Xcopy o que da para fazer é colocar um ">logcopia.txt" no final do comando, mas eu recomendaria o uso do Robocopy, não uso muito mas é um ótima ferramenta, com ele vc pode controlar desde de log a envio de pacote, além de que ser der erro ou cair a rede ele volta a copia de onde parou...

    sua linha ficaria assim:

    Robocopy "E:\Users\%username%\AppData\LocalLow\Sun\" "E:\Users\%username%\AppData\LocalLow\Sun\" /E /COPYALL /V /LOG+:E:\teste.log


    att, Aparecido Deveza

    • Sugerido como Resposta Edinaldo Junior terça-feira, 4 de fevereiro de 2014 19:40
    • Marcado como Resposta Wesley Sampa quinta-feira, 6 de fevereiro de 2014 01:00
    terça-feira, 4 de fevereiro de 2014 18:18
  • Aparecido tem como rodar este script de uma forma que ele mostre o que está sendo excecutado como se fosse copias de pastas do windows ?

    Desde já agradeço

    quarta-feira, 5 de fevereiro de 2014 15:37
  • Boa tarde José,

    ja existe um post com essa sua dúvida eu fiz teste e funciona, no estanto, o robocopy ja apresenta a porcentagem de cada arquivo copiado ....


    att, Aparecido Deveza

    • Sugerido como Resposta Edinaldo Junior quarta-feira, 5 de fevereiro de 2014 19:31
    • Marcado como Resposta Wesley Sampa quinta-feira, 6 de fevereiro de 2014 01:00
    quarta-feira, 5 de fevereiro de 2014 19:25
  • Wesley, alguma dúvida mais? Acredito que as respostas resolvem seu problema.

    Edinaldo Oliveira

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    ** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **

    quarta-feira, 5 de fevereiro de 2014 19:31
  • Então Aparecido Deveza eu vi que o ROBOCOPY executa , mas como vc disse , ele faz por aquivo, eu queria ver algo que pudesse mostrar todo o processo., será que tem como  ?
    quarta-feira, 5 de fevereiro de 2014 20:55
  • Infelizmente não sei como, até tem alguma coisas nesses Links, mas não os testei...

    Simple Progress bar demo written in batch

    how to add progress bar to bat file


    att, Aparecido Deveza

    sexta-feira, 7 de fevereiro de 2014 11:11
  • ok amigo obrigado ...

    abração

    segunda-feira, 10 de fevereiro de 2014 10:31
  • O comando xcopy tem a capacidade de transferir arquivos, directórios e até mesmo todo o disco de um local para outro.

    Exemplo: Digamos que quer fazer um backup do seu usuário no cliente de Email Thunderbird, para outra unidade de disco.

    1º – Escrever no notepad o seguinte texto:

    @echo off
    xcopy “C:\Documents and Settings\nomedousuário\Application Data\Thunderbird\*.*” “D:\Thunderbird\” /E/Y/C/H/D
    cls
    echo.
    echo Back-up finalizado comsucesso!
    echo.
    pause
    exit

    2º – Salvar o ficheiro com a extensão .bat (ex: backup.bat)

    Este script é muito útil, se por exemplo, agendar uma tarefa
    nas ferramentas do sistema do Windows, para ser executado todos os dias à hora que escolher, fazendo assim o backup para o destino que quiser.

    / A Copia somente arquivos com o atributo de arquivo definido, não altera o atributo.
    /M Copia somente arquivos com o atributo de arquivo definido, desativa o atributo de arquivamento.
    / D: mda Se nenhuma data for definida, copia somente os arquivos cujo tempo de origem é mais recente que o horário de destino.
    / EXCLUDE: arquivo1 [+ arquivo2] [+ arquivo3] … Especifica uma lista de arquivos que contêm sequências. Quando qualquer uma das sequências de partida de qualquer parte do caminho absoluto do arquivo a ser copiado, esse arquivo será excluído de ser copiado. Por exemplo, especificar uma sequência de caracteres como \ obj \ ou. Obj excluirá todos os arquivos sob a pasta obj ou todos os arquivos com a extensão. Obj extensão, respectivamente.
    /P Solicita confirmação antes de criar cada arquivo de destino.
    /S Copia pastas e subpastas exceto as vazias.
    /E Copia pastas e subpastas, incluindo os vazios. O mesmo que / S / E. Pode ser usado para modificar / T.
    /V Verifica cada novo arquivo.
    /W Solicita que pressione uma tecla antes de copiar.
    /C Continua a copiar mesmo se ocorrer erros.
    /I Se o destino não existir e estiver a copiar mais de um arquivo, pressupõe que o destino deve ser um diretório.
    /Q Não exibe nomes de arquivos ao copiar.
    /F Exibe fonte completo e os nomes de arquivo de destino ao copiar.
    /L Exibe arquivos que seriam copiados.
    /H Copia arquivos ocultos e de sistema também.
    /R Substitui ficheiros só de leitura.
    /T Cria a estrutura de diretório, mas não copiar os arquivos. Não inclui pastas ou subpastas vazias. / T / E inclui pastas e subpastas vazias.
    /U Copia apenas ficheiros que já existem no destino.
    /K Copia arquivos e mantém o atributo somente leitura nos arquivos de destino, se estiver presente nos arquivos de origem.
    /N Cópias com os nomes curtos gerados.
    /O Copia a posse do arquivo e informações de ACL.
    /X Copia arquivo de configurações de auditoria (implica / O).
    /Y Suprime o prompt para confirmar se deseja substituir um arquivo de destino existente.
    /-Y Exibe o prompt para você confirmar se deseja substituir um arquivo de destino existente.
    /Z Copia em uma rede no modo reinicializável.
    segunda-feira, 10 de fevereiro de 2014 10:49
  • Bom dia a todos. Eu já havia criado um bat semelhante para rodar aqui na rede e realizar o backup de alguns arquivos aqui onde trabalho, só que ao agendar a tarefa ele não está copiando. Quando clico sobre o bat ele executa normal, no agendamento que não está funcionando 100%. Ele está criando o log como programado, o que significa que está sendo executado o bat, somente não está copiando o que é o mais importante neste caso. Segue o arquivo bat a seguir: 

    REM Registra data e hora do início da cópia
    echo ========================================= >> d:\backup_ci\logs\log.txt
    echo – Início do Backup dos arquivos CI’s —- >> d:\backup_ci\logs\log.txt
    date /t >> d:\backup_ci\logs\log.txt
    time /t >> d:\backup_ci\logs\log.txt

    @echo on

    REM Copiar todos os arquivos da pasta selecionada
    xcopy p:\*.* d:\backup_ci /s /e /y /c /h

    @echo off

    REM Registra data e hora do fim da cópia
    echo – Fim ———————————– >> d:\backup_ci\logs\log.txt
    time /t >> d:\backup_ci\logs\log.txt
    echo ========================================= >> d:\backup_ci\logs\log.txt

    segunda-feira, 10 de fevereiro de 2014 10:50
  • TUdo certo AParecido, estou tentando usar esse seu script fiz a seguinte alteração.

    Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set oShell = CreateObject("WScript.Shell")
    ProfileUser = oShell.ExpandEnvironmentStrings("%username%")

    oFSO.CopyFolder "\\dc1\UpdateServicesPackages\Assinatura.htm","C:\Users\"& ProfileUser & "\AppData\Roaming\Microsoft\Signatures",true

    alterei ali pois o arquivo que quero copiar esta no dc1 e quero copiar esse arquivo assinatura para pasta assinaturas no profile do usuário que logar na maquina. Porém esta me retornando uma msg de erro 

    segunda-feira, 9 de novembro de 2015 13:58