Usuário com melhor resposta
Script para Copiar pasta e Colocar novo nome!!!

Pergunta
-
Boa Tarde pessoal!!!
Bem estava no forum do Windows Server 2003 resolvendo um problema de regras de acesso onde conseguimos chegar que usando um comando xcopy ou Robocopy (este e que prefiro usar) ira copiar a pasta com tudo dentro e tmb com as regras de acesso que foram configurada, pois bem preciso fazer isso pois são criadas de 5 a 8 novas pasta com nome de clientes, tenho uma pasta padrão onde está tudo configurado os acessos para cada grupo, então preciso gravar esta pasta e copia-la no mesmo local somente colocando o nome do novo cliente, isso e possivél?????!!!!
Respostas
-
Simplificando a resposta , vc deve usar o seguinte comando :
xcopy arquivo_origem arquivo_destino /e /h /k /o /x
/E - copia pastas e subpastas, inclusive as vazias.
/H - cópias ocultadas e também os arquivos de sistema.
/K - atributos de cópias. Normalmente, Xcopy redefine atributos somente leitura.
/O - cópias posse do arquivo e informações de ACL.
/X - configurações de auditoria de arquivo cópias (implica /O).Vc pode copiar o arquivo já com novo nome , no arquivo origem coloque o caminho completoExemplo : C:\Documents and Settings\Profile\Desktop\arquivo_origemServe tambem para destino .
Denis Faustino- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:53
-
-
-
@echo OFF title COPIAR PASTAS COM NOVO NOME color 0a echo *************************************************************************** echo * Script Renomeia Pasta * echo * * echo * Sript: pasta.bat versao A.01 * echo * * echo * * echo * Criado: 27/07/2011 * echo * * echo * Autor: Edson M. Fagundes Jr. - T.I * echo * * echo * Objetivo: Renomear Pastas * echo * * echo *************************************************************************** echo. set cliente = "" echo Qual o Nome do Cliente? REM Ira pegar o valor que for digitado e atribuir a variavel cliente set /p cliente= REM A primeira é a pasta padrão xcopy "C:\Users\edson.fagundes\Desktop\teste" "C:\Users\edson.fagundes\Desktop\%cliente%" /e /c /i /q /h /o /y if EXIST "C:\Users\edson.fagundes\Desktop\%cliente%" ( echo *************************************************************************** echo * Pastas criada com sucesso * echo *************************************************************************** ) else ( echo *************************************************************************** echo * Erro ao copiar pasta * echo *************************************************************************** ) pause
Acho que esse script *.bat resolve seu problema coloque em um TXT renomei como .BAT e nao esqueça de alterar os caminhos destino "C:\C:\Users\edson.fagundes\Desktop\%cliente%" mantendo o %cliente%
e o caminho de origem
C:\Users\edson.fagundes\Desktop\testeAbraços
Se a resposta for valida por favor pontue
EFagundes- Sugerido como Resposta Edson Matias Fagundes Junior sexta-feira, 29 de julho de 2011 15:51
- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:53
-
Cria um mapeamento isso pode resolver seu problema.
echo ***************************************************************************
echo.net use /delete Z: /y
net use z: \\servidor\FINANCEIRO /y
set cliente = "".
.
.
REM Coloca no final do codigo
net use /delete Z: /y
REM para remover o mapeamento
So uma pergunta voce esta coloando o caminho entre " "?
Abraços.
EFagundes- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:53
-
-
-
-
Dacio, verifiquei e exisita um espaço onde nao deveria estava assim
set /p cliente =
quando o correto é
set /p cliente=
Espero que resolva seu problema abraços.
@echo on
Title Copiar Pasta Cliente
color 0a
echo *************************************
echo * *
echo * Copia de Pasta Buffet *
echo * *
echo * *
echo * Fitz Roy *
echo * *
echo *************************************
set cliente = ""
echo Coloque o nome do Novo Buffet
REM pega nome da variável cliente
set /p cliente=REM A primeira é a pasta padrão
xcopy "c:\Teste\ABuffet" "c:\Teste\%cliente%" /e /c /i /q /h /o /ypause
If exist "c:\Teste\%cliente%"
(
echo *******************************************
echo *********PASTA CRIADA COM SUCESSO**********
ECHO *******************************************
) else (
echo *******************************************
echo ***********ERRO AO COPIAR PASTA************
ECHO *******************************************
)
pauseAbraços
Jr
EFagundes- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:52
-
Já é um bom começo você ja sabe que é permisão agora so falta decobrir em qual pasta...rsrs
dai eu ja nao posso lhe ajudar muito bons testes...
Abraços espero ter ajudado...
Edson Matias Fagundes Junior (Nioks)- Marcado como Resposta Dacio sexta-feira, 5 de agosto de 2011 15:11
Todas as Respostas
-
Bem que eu entendi pode ser feito da seguinte maneira:
Exemplo temos um diretorio chamado onde fica armazenado todas as pastas dos clientes:
c:\clientes
Temos um diretorio modelo chamado
c:\modelo
podemos fazer este procedimento desta forma
move c:\modelo c:\cliente
ren c:\cliente\modelo "nome do cliente"
Detalhe lembre-se das regras de conflito NTFS
-
-
Vamos la então o que eu preciso e de um Script que copia uma pasta que tenho como Exemplo chamada AAABuffet para novos clientes, fazendo esta copia ela tem que copia a pasta e subpasta tmb, juntamente com a copia manter a regras de acesso configuradas nela, a unica coisa que gostaria e que qdo este processo fosse feito eu pudesse colocar o nome do novo cliente. A copia será efetuada dentro da pasta comercial\clientes\buffet e salva no mesmo diretorio só que com o novo nome de cliente se for possivel.
Acho que agora ficou um pouco mas claro.
-
Bem que eu entendi pode ser feito da seguinte maneira:
Exemplo temos um diretorio chamado onde fica armazenado todas as pastas dos clientes:
c:\clientes
Temos um diretorio modelo chamado
c:\modelo
podemos fazer este procedimento desta forma
move c:\modelo c:\cliente
ren c:\cliente\modelo "nome do cliente"
Detalhe lembre-se das regras de conflito NTFS
-
Simplificando a resposta , vc deve usar o seguinte comando :
xcopy arquivo_origem arquivo_destino /e /h /k /o /x
/E - copia pastas e subpastas, inclusive as vazias.
/H - cópias ocultadas e também os arquivos de sistema.
/K - atributos de cópias. Normalmente, Xcopy redefine atributos somente leitura.
/O - cópias posse do arquivo e informações de ACL.
/X - configurações de auditoria de arquivo cópias (implica /O).Vc pode copiar o arquivo já com novo nome , no arquivo origem coloque o caminho completoExemplo : C:\Documents and Settings\Profile\Desktop\arquivo_origemServe tambem para destino .
Denis Faustino- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:53
-
-
Irei fazer os teste com o Xcopy, estes comando funcionar tmb com o Robocop??? Eu gostaria de deixar algo mais funcionar quem for efetuar estar copia não precise ficar usando o comando somente colocando o nome do cliente na nova pasta???? tem como isso... fazer um .bat ou .vbs ou qq outro com este comando inserindo somente o nome do novo cliente????? Desculpe a insistência como sou leigo neste assunto e não manjo nada... preciso de mais esta ajuda.. fazendo com que este comando estejam automatico e somente a colocação do nome do novo cliente ficara perfeito.
-
@echo OFF title COPIAR PASTAS COM NOVO NOME color 0a echo *************************************************************************** echo * Script Renomeia Pasta * echo * * echo * Sript: pasta.bat versao A.01 * echo * * echo * * echo * Criado: 27/07/2011 * echo * * echo * Autor: Edson M. Fagundes Jr. - T.I * echo * * echo * Objetivo: Renomear Pastas * echo * * echo *************************************************************************** echo. set cliente = "" echo Qual o Nome do Cliente? REM Ira pegar o valor que for digitado e atribuir a variavel cliente set /p cliente= REM A primeira é a pasta padrão xcopy "C:\Users\edson.fagundes\Desktop\teste" "C:\Users\edson.fagundes\Desktop\%cliente%" /e /c /i /q /h /o /y if EXIST "C:\Users\edson.fagundes\Desktop\%cliente%" ( echo *************************************************************************** echo * Pastas criada com sucesso * echo *************************************************************************** ) else ( echo *************************************************************************** echo * Erro ao copiar pasta * echo *************************************************************************** ) pause
Acho que esse script *.bat resolve seu problema coloque em um TXT renomei como .BAT e nao esqueça de alterar os caminhos destino "C:\C:\Users\edson.fagundes\Desktop\%cliente%" mantendo o %cliente%
e o caminho de origem
C:\Users\edson.fagundes\Desktop\testeAbraços
Se a resposta for valida por favor pontue
EFagundes- Sugerido como Resposta Edson Matias Fagundes Junior sexta-feira, 29 de julho de 2011 15:51
- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:53
-
-
Não deu certo pelo motivo que ele nao acha a pasta, pq?? Acho que sei.. como as pasta tem alguns com nome um pouco externo ele nao localiza tipo pasta Rede tem menos 08 carater, mas a pasta FITZ ROY 1 TEM MAIS como eu consigo indentificar os nome das pasta no modelo ms-dos ?? vcs saber????? sei que as vezes ela coloca o simbolo"~" e um nr na frente mas tem como eu ter certeza disso??
-
Cria um mapeamento isso pode resolver seu problema.
echo ***************************************************************************
echo.net use /delete Z: /y
net use z: \\servidor\FINANCEIRO /y
set cliente = "".
.
.
REM Coloca no final do codigo
net use /delete Z: /y
REM para remover o mapeamento
So uma pergunta voce esta coloando o caminho entre " "?
Abraços.
EFagundes- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:53
-
-
-
-
-
-
-
Ele está copiando as subpasta que estão dentro da pasta Abuffet e deixando fora.
Para enteder estou fazendo o teste assim
C:\teste\Abuffet de acordo com o script ele teria que copiar c:\teste\%cliente% com o novo nome e com as subpasta dentro, mas esta apenas copiando as subpasta e deixando no diretorio do c:\teste??
então fica dentro da pasta teste a pasta Abuffet juntamente com a pasta que estavam dentro dela mesma
Entenderam????
-
-
Este aqui Edson
@echo off
Title Copiar Pasta Cliente
color 0a
echo *************************************
echo * *
echo * Copia de Pasta Buffet *
echo * *
echo * *
echo * Fitz Roy *
echo * *
echo *************************************set cliente = ""
echo Coloque o nome do Novo Buffet
REM pega nome da variável cliente
set /p cliente =
xcopy "c:\Teste\ABuffet" "c:\teste\%cliente%" /s /e /c /i /q /h /o /y
If exist "c:\teste\%cliente%"
(
echo *******************************************
echo *********PASTA CRIADA COM SUCESSO**********
ECHO *******************************************
) else (echo *******************************************
echo ***********ERRO AO COPIAR PASTA************
ECHO *******************************************
)pause
Veja se está tudo ok, pois ainda estou fazendo teste direto no sevidor depois irei disponibilizar para o acesso em rede
-
Dacio, verifiquei e exisita um espaço onde nao deveria estava assim
set /p cliente =
quando o correto é
set /p cliente=
Espero que resolva seu problema abraços.
@echo on
Title Copiar Pasta Cliente
color 0a
echo *************************************
echo * *
echo * Copia de Pasta Buffet *
echo * *
echo * *
echo * Fitz Roy *
echo * *
echo *************************************
set cliente = ""
echo Coloque o nome do Novo Buffet
REM pega nome da variável cliente
set /p cliente=REM A primeira é a pasta padrão
xcopy "c:\Teste\ABuffet" "c:\Teste\%cliente%" /e /c /i /q /h /o /ypause
If exist "c:\Teste\%cliente%"
(
echo *******************************************
echo *********PASTA CRIADA COM SUCESSO**********
ECHO *******************************************
) else (
echo *******************************************
echo ***********ERRO AO COPIAR PASTA************
ECHO *******************************************
)
pauseAbraços
Jr
EFagundes- Marcado como Resposta Dacio sexta-feira, 29 de julho de 2011 16:52
-
-
Edson Help agora
funcionou na paste teste, agora estou aplicando realmente no caminho que tem que ser mais não vejo a pasta o mais engraçado qdo entro através do CMD para verficar as pasta estão lá, somente no modo W2003 não visualizo as pasta olha o novo script: ===
@echo off
Title Copiar Pasta Cliente
color 0a
echo *************************************
echo * *
echo * Copia de Pasta Buffet *
echo * *
echo * *
echo * Fitz Roy *
echo * *
echo *************************************set cliente = ""
echo Coloque o nome do Novo Buffet
REM pega nome da variável cliente
set /p cliente=
xcopy "c:\rede\fitzro~2\1comer~1\1clien~1\1buffe~1\buffet~1\ABuffet" "c:\rede\fitzro~2\1comer~1\1clien~1\1buffe~1\buffet~1\%cliente%" /e /c /i /q /h /o /y
Rem xcopy "c:\Teste\ABuffet" "c:\teste\%cliente%" /s /e /c /i /q /h /o /y
If exist "c:\rede\fitzro~2\1comer~1\1clien~1\1buffe~1\buffet~1\%cliente%" (
echo *******************************************
echo *********PASTA CRIADA COM SUCESSO**********
ECHO *******************************************
) else (echo *******************************************
echo ***********ERRO AO COPIAR PASTA************
ECHO *******************************************
)pause
-
Edson... cara pode relaxar.... tá funcionando aqui foi erro de caminho mesmo... como tinha 3 pasta identicas eu coloquei como sendo buffet~1 mas na verdade e buffet~3, fiquei uns 20 minutos olhando pro diretorio ai me toquei... kkkk mas tá funcionando... blz... valeu pela a ajuda e paciência!!!
Abraços
-
-
esqueci.. ficou agora assim o script:
echo off
Title Copiar Pasta Cliente
color 0a
echo *************************************
echo * *
echo * Copia de Pasta Buffet *
echo * *
echo * *
echo * Fitz Roy *
echo * *
echo *************************************set cliente = ""
echo Coloque o nome do Novo Buffet
REM pega nome da variável cliente
set /p cliente=
xcopy "\\servidor\rede\fitzro~2\1comer~1\1clien~1\1buffe~1\buffet~3\ABuffet" "\\servidor\rede\fitzro~2\1comer~1\1clien~1\1buffe~1\buffet~3\%cliente%" /e /c /i /q /h /o /y
If exist "\\servidor\rede\fitzro~2\1comer~1\1clien~1\1buffe~1\buffet~3\%cliente%" (echo *******************************************
echo *********PASTA CRIADA COM SUCESSO**********
ECHO *******************************************
) else (echo *******************************************
echo ***********ERRO AO COPIAR PASTA************
ECHO *******************************************
)pause
-
-
Dacio, bom dia vamos tentar...
Fiz alguns testes... com permissão na pasta origem tudo ocorre bem, mas quando eu removo a minha permissão (de no mínimo leitura) da pasta origem ai não funciona pois ele da erro de acesso negado...
como você pode fazer para descobrir oq esta acontecendo
no início do código tem um comando chamado @echo Off, altere para @echo on isso ira mostrar passagem por passagem...
Abra o CMD e puxe e solte seu bat dentro do CMD e rode... assim você ira conseguir ver +/- o erro.
Vamos fazer isso funcionar agora é questão de honra...
]Abraços
Jr
Edson Matias Fagundes Junior (Nioks) -
dentro do servidor tudo ocorre perfeito... mas qdo mando executar pelo usuarios e ai que pega, pois bem, já fiz alteração que vc me pediu e vou fazer um print screen para poder ver tudo que acontece no usuario... daqui a pouco posto aqui para analisarmos jntos. abaços
-
-
-
Olhe dentro da aba de segurança da pasta se nao tem nenhum SSID de usuario que foi excluido ou local...
me envie emfagundesjr@gmail.com
Abraços
Edson Matias Fagundes Junior (Nioks) -
-
-
-
Continua dando a msg de segurança.. sobre os grupos quem tem na pasta, são todos definidos para empresa, junto com grupo administradores e tmb administrador!!!!! só para constar!
Pergunta, se usarmos o comando robocopy neste script será que funciona???Seria nececessario colocar os membros da Diretoria no grupo administradores????
-
Dacio tente esse procedimeto...
http://support.microsoft.com/kb/288991
Tem mais duas coisas aqui...
faça esse passo a passo
entre no cmd
vá até a pasta da rede onde esta a pasta AAAbufet nao entre na pasta AAABufetcacls AAAbufet /T /E /C /P seuusuariologadonamaquina@seudominio.localoucom:F
Coloque o usuário que esta logado na maquina onde voce esta rodando o script como proprietario da pasta origem.
Abraços
Edson Matias Fagundes Junior (Nioks) -
-
-
Edson... funcionou com um diretor pois ele faz parte do grupo administrador, mas os outros ainda dão a mesma msg, não possou na diretiva de grupo o redirecionamento de pasta!!!!! vou fazer mais uns testes aqui....... agora vou transferir a propriedade da pasta!
-
-
Já é um bom começo você ja sabe que é permisão agora so falta decobrir em qual pasta...rsrs
dai eu ja nao posso lhe ajudar muito bons testes...
Abraços espero ter ajudado...
Edson Matias Fagundes Junior (Nioks)- Marcado como Resposta Dacio sexta-feira, 5 de agosto de 2011 15:11
-
-
-
Mexendo no grupo de segurança colocando o usuario como Adm De Dominio, copia sem problema nenhum!!
Agora Edson pergunta, tem como eu criar neste script opções de gravação tipo assim se quero que copia em 3 tipos de pasta por exemplo
Selecione Destino - 1.Locação, 2.Vendas, 3.Manutenção, depois da seleção coloca o nome cliente ela copia na pasta a partir da selação da opção.
a possibilidade disso???
-
-
Dacio,
Segue script conforme solicitado espero ter ajudado...
@echo OFF title COPIAR PASTAS COM NOVO NOME color 0a echo *************************************************************************** echo * Script Renomeia Pasta * echo * * echo * Sript: pasta.bat versao A.01 * echo * * echo * * echo * Criado: 27/07/2011 * echo * * echo * Autor: Edson M. Fagundes Jr. - T.I * echo * * echo * Objetivo: Renomear Pastas * echo * * echo *************************************************************************** echo. set cliente = "" set caminho = "" set caminhodet = "" echo Qual o Nome do Cliente? REM Ira pegar o valor que for digitado e atribuir a variavel cliente set /p cliente= REM mostra na tela escolha dos numeros :escolha echo Escolha o numero da referente a pasta. echo 1 - Locacao echo 2 - Vendas echo 3 - Manutencao set /p caminho= if %caminho% EQU 1 ( set caminhodet=locacao goto Continua ) else ( goto Segunda ) :Segunda if %caminho% EQU 2 ( set caminhodet=vendas goto Continua ) else ( goto terceira ) :terceira if %caminho% EQU 3 ( set caminhodet=manutencao goto Continua ) else ( goto escolha ) :Continua REM A primeira é a pasta padrão xcopy "C:\Users\Administrator\Desktop\teste" "C:\Users\Administrator\Desktop\%caminhodet%\%cliente%" /e /c /i /q /h /o /y if EXIST "C:\Users\Administrator\Desktop\%caminhodet%\%cliente%" ( echo *************************************************************************** echo * Pastas criada com sucesso * echo *************************************************************************** ) else ( echo *************************************************************************** echo * Erro ao copiar pasta * echo *************************************************************************** )
Edson Matias Fagundes Junior (Nioks) -
-
-
Fala meu amigo Edson.... tudo funcionando na perfeita ordem... tudo certinho.. agora tenho que apenas ver como irei resolver o problema da gravação por causa da seguraça, como não posso colocar tudo mundo como ADM de Dominio tenho que ver como faço isso, vc acha que tenho que abrir um novo topico aqui ou no windows server???
Agora dá para enfeitar o pavão...kkkkk vou colocar o codigo aqui.. e vou começar a estudar estes comando para conseguir me virar sozinho tmb... mas não tenho palavras para lhe agradecer vc foi prestativo e tremendamente paciênte comigo, e bom saber que tem profissionais desde gabarito que não se incomodar para ajudar pessoas como eu sem experiência nenhuma.
o que eu gostaria vou deixar em destaque no codigo para ver se tem como fazer ok???
@echo OFF title COPIAR PASTAS COM NOVO NOME color 0a echo *************************************************************************** echo * Script Renomeia Pasta * echo * * echo * Sript: pasta.bat versao A.01 * echo * * echo * * echo * Criado: 27/07/2011 * echo * * echo * Autor: Edson M. Fagundes Jr. - T.I * echo * * echo * Objetivo: Renomear Pastas * echo * * echo *************************************************************************** echo. set cliente = "" set caminho = "" set caminhodet = "" echo Qual o Nome do Cliente?
* Aqui ter isso Buffet: nome* eu gostaria que antes de colocar o novo nome tivesse escrito a palavra Buffet :
REM Ira pegar o valor que for digitado e atribuir a variavel cliente set /p cliente= REM mostra na tela escolha dos numeros :escolha echo Escolha o numero da referente a pasta. echo 1 - Locacao echo 2 - Vendas echo 3 - Manutencao set /p caminho=
* Aqui ter isso Destino: opção* aqui a mesma coisa antes de dar o destino que tivesse a palavra Destino: if %caminho% EQU 1 ( set caminhodet=locacao goto Continua ) else ( goto Segunda ) :Segunda if %caminho% EQU 2 ( set caminhodet=vendas goto Continua ) else ( goto terceira ) :terceira if %caminho% EQU 3 ( set caminhodet=manutencao goto Continua ) else ( goto escolha ) :Continua REM A primeira é a pasta padrão xcopy "C:\Users\Administrator\Desktop\teste" "C:\Users\Administrator\Desktop\%caminhodet%\%cliente%" /e /c /i /q /h /o /y if EXIST "C:\Users\Administrator\Desktop\%caminhodet%\%cliente%" ( echo *************************************************************************** echo * Pastas criada com sucesso * echo *************************************************************************** ) else ( echo *************************************************************************** echo * Erro ao copiar pasta * echo *************************************************************************** )
-
Dacio Boa tarde,
Obrigado e acredito que temos que ser exemplo tenho certeza que você um dia ira pensar no quanto foi ajudado e ira ajudar.
Quanto a questão de acesso o mais correto é no forum de 2003 posso lhe ajudar lá sem problemas...
Já quanto ao seu codigo eu não consegui entender muito seu pavão.. rsrsr
Se puder me encaminhe via email uma imagem ou algo assim para que eu possa lhe ajudar.
Abraços.
Edson Matias Fagundes Junior (Nioks)