Usuário com melhor resposta
Script de copia de pasta especifica

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
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
-
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
-
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
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
-
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
-
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
-
-
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
-
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. ** -
-
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
-
-
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
exit2º – 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. -
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 -
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