none
Mover arquivos de uma partição para outra partição, mantendo o Owner (Proprietário) RRS feed

  • Pergunta

  • Olá Pessoal,

              Gostaria de uma ajuda de vocês...Estou precisando mover arquivos dos aplicativos: Word, Excel, PowerPoint entre outras extensões, menos a extensão do aplicativo Access de uma partição chamada DATA (D:) de um subdiretorio para outra partição chamada DATA_FILES (E:) para um outro subdiretório, o unico desafio à parte é que tenho que manter o mesmo owner original do DATA (D:) para o DATA_FILES (E:).
              Estava criando um arquivo BAT através do XCOPY, mas queria ver se está correto ou o que precisa adicionar nestes parâmetros. Lembrando que tenho que manter o Owner dos arquivos de origem, não devem ser mudado após ter movido os mesmos.

              Segue abaixo o exemplo do XCOPY que eu criei...

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY D:\APPS\PROG_SPL\Logistica\*.* E:\BRSPA\SPL\LOGISTICS\*.*  /D /C /H /E /Y /O

    Acredito que precise mudar alguns parâmetros, sendo assim poderiam me auxiliar?

    Obrigado à todos...


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    segunda-feira, 23 de novembro de 2009 13:41

Respostas

  • Marcellus, bom dia!

    Agradeço à ajuda, agora conseguimos a copiar os arquivos menos a extensão *.mdb, contudo teria como saber se ele copiou todos os arquivos mesmos, afim de não termos surpresas desagrdáveis do tipo, ficou faltando alguma pasta ou outros arquivos? Na tela do script aparece quando está copiando os arquivos, mas seria bom ter 100% de certeza, isto é possível? Segue abaixo o script final

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY D:\APPS\PROG_SPL\LOGISTICA\*.* E:\TESTE_BRSPA\LOGISTICA\ /C /H /E /-Y /O /EXCLUDE:D:\TESTE.txt

    PAUSE

    Obrigado mais uma vez


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!

    Sem problemas....

    Insira ao final do arquivo... > LOGCopia.txt

    Assim vc terá o log dos arquivos copiados podendo validar....

    []s,


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    • Marcado como Resposta Fabio-Ferreira quarta-feira, 25 de novembro de 2009 18:09
    quarta-feira, 25 de novembro de 2009 12:43

Todas as Respostas

  • Fabio, boa tarde.


    Quanto ao batch file vc precisa que ele efetue um "search" na unidade? 
    Quanto a copia de arquivos mantendo o Owner e as ACL's o proprio xCOPY passa as informações.
    Só não entendi o parametro /D no qual vc teria que especificar a data...

      /D:m-d-a     Copia os arquivos alterados durante ou ap¢s a data
                   especificada. Se nÆo for definida uma data, copia apenas os
                   arquivos cujo tempo de origem seja mais novo do que o tempo
                   de destino.

    Como é uma pasta de rede não teria duplicidades a não ser que ja estejam utilizando...

    Saida xcopy /? > c:\ManualXcopy.txt

    Copia arquivos e  rvores de diret¢rios.

    XCOPY origem [destino] [/A | /M] [/D[:data]] [/P] [/S [/E]] [/V] [/W]
                               [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                               [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
                               [/EXCLUDE:arquivo1[+arquivo2][+arquivo3]...]

      origem       Especifica o(s) arquivo(s) a ser(em) copiado(s).
      destino  Especifica o local e/ou o nome dos novos arquivos.
      /A           Copia somente arquivos com o atributo de arquivamento
                   definido; nÆo altera o atributo.
      /M           Copia somente arquivos com o atributo de arquivamento
                   definido; desativa o atributo de arquivamento.
      /D:m-d-a     Copia os arquivos alterados durante ou ap¢s a data
                   especificada. Se nÆo for definida uma data, copia apenas os
                   arquivos cujo tempo de origem seja mais novo do que o tempo
                   de destino.
      /EXCLUDE:arquivo1[+arquivo2][+arquivo3]...
                   Especifica uma lista de arquivos contendo cadeias de
                   caracteres. Cada cadeia deve estar em uma linha separada nos
                   arquivos. Quando qualquer cadeia corresponder a qualquer parte
                   do caminho absoluto do arquivo a ser copiado, esse arquivo
                   deixar  de ser copiado. Por exemplo, especificar uma cadeia de
                   caracteres como \obj\ ou .obj excluir  todos os arquivos sob o
                   diret¢rio obj ou com a extensÆo .obj, respectivamente.
      /P           Solicita confirma‡Æo antes de criar cada arquivo de destino.
      /S           Copia diret¢rios e subdiret¢rios, exceto os vazios.
      /E           Copia diret¢rios e subdiret¢rios, inclusive os vazios.
                   O mesmo que /S /E. Pode ser usado para modificar /T.
      /V           Verifica o tamanho de cada novo arquivo.
      /W           Solicita que vocˆ pressione uma tecla antes de copiar.
      /C           Continua copiando, mesmo que ocorram erros.
      /I           Se o destino nÆo existir e mais de um arquivo estiver sendo
                   copiado, pressupäe que o destino deve ser um diret¢rio.
      /Q           NÆo exibe os nomes de arquivos ao copiar.
      /F           Exibe os nomes de arquivos de origem e de destino completos ao
                   copiar.
      /L           Exibe arquivos que seriam copiados.
      /G           Permite a c¢pia de arquivos criptografados para um destino que
                   nÆo oferece suporte a criptografia.
      /H           Copia arquivos ocultos e do sistema tamb‚m.
      /R           Substitui arquivos somente leitura.
      /T           Cria a estrutura de diret¢rios, mas nÆo copia arquivos. NÆo
                   inclui diret¢rios ou subdiret¢rios vazios. /T /E inclui
                   diret¢rios e subdiret¢rios vazios.
      /U           Copia apenas os arquivos que j  existem no destino.
      /K           Copia atributos. O Xcopy normal redefinir  os atributos
                   somente leitura.
      /N           Copia usando os nomes curtos gerados.
      /O           Copia as informa‡äes de ACL e propriet rio do arquivo.
      /X           Copia configura‡äes de auditoria de arquivo (implica /O).
      /Y           Suprime o prompt para vocˆ 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 arquivos de rede no modo reinici vel.
      /B           Copia o pr¢prio V¡nculo Simb¢lico, e nÆo o destino do v¡nculo.
      /J           Copia usando E/S sem buffer. Recomend vel para arquivos muito
                   grandes.

    A op‡Æo /Y pode ser predefinida na vari vel de ambiente COPYCMD.
    Isso pode ser anulado por /-Y na linha de comando.


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    segunda-feira, 23 de novembro de 2009 14:58
  • Olá,

    Você pode utilizar o robocopy... É muito bom e simples de usar:

    http://technet.microsoft.com/en-us/magazine/2006.11.utilityspotlight.aspx



    Até mais,

    Jesiel

    Obs.: Se útil, classifique



    segunda-feira, 23 de novembro de 2009 15:09
  • Olá Marcellus,


              Agradeço pela rápida resposta, na verdade não vai haver necessidade de realizar o search na unidade de origem, apenas a cópia mesmo dos arquivos menos a extensão *.MDB do Access, e claro mantendo o owner de cada pasta e arquivo junto com as ACL's. Sobre o arquivo de lote, estava verificando realmente o parâmetro /D não vai haver necessidade mesmo, e o outro -Y seria o mais interessante. Não sei se estou certo, mas o parâmetro /EXCLUDE vai ajudar em algo, do tipo ele só copiar os arquivos sem excluir ou não tem nada haver?

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY D:\APPS\PROG_SPL\Logistica\*.* E:\BRSPA\SPL\LOGISTICS\*.*  /C /H /E /-Y /O

    Mais uma vez, agradeço a ajuda neste caso. É que acontece que iremos migrar este servidor de arquivos para outro, porém iremos ter que acertar estes detalhes.

    Obrigado!


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    segunda-feira, 23 de novembro de 2009 15:10
  • Olá,

    Para migração... Recomendo o uso ou do robocopy ou fazer o backup da pasta (ntbackup) e fazer um restore desta pasta no novo server.


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    segunda-feira, 23 de novembro de 2009 15:35
  • Olá Jesiel,


             Então infelizmente por políticas internas da empresa e do administrador da rede, teremos que utilizar o comando XCOPY mesmo conforme mencionei acima. Apenas queria este auxílio para acertar este script, pois a partição da unidade DATA (D:\) ficará apenas com os arquivos do Access, e a outra DATA_FILES (E:\) ficará com o restante das extensões de arquivos. 

            Desde já agradeço a ajuda...

    Obrigado


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    segunda-feira, 23 de novembro de 2009 15:40
  • Olá Marcellus,


              Agradeço pela rápida resposta, na verdade não vai haver necessidade de realizar o search na unidade de origem, apenas a cópia mesmo dos arquivos menos a extensão *.MDB do Access, e claro mantendo o owner de cada pasta e arquivo junto com as ACL's. Sobre o arquivo de lote, estava verificando realmente o parâmetro /D não vai haver necessidade mesmo, e o outro -Y seria o mais interessante. Não sei se estou certo, mas o parâmetro /EXCLUDE vai ajudar em algo, do tipo ele só copiar os arquivos sem excluir ou não tem nada haver?

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY D:\APPS\PROG_SPL\Logistica\*.* E:\BRSPA\SPL\LOGISTICS\*.*  /C /H /E /-Y /O

    Mais uma vez, agradeço a ajuda neste caso. É que acontece que iremos migrar este servidor de arquivos para outro, porém iremos ter que acertar estes detalhes.

    Obrigado!


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!

    Fabio poderia tirar umas duvidas?

    A unidade E:\BRSPA\SPL\LOGISTICS\ está em uso?
    Se ainda não, acredito que não seria necessário o /-Y até porque não teriam arquivos duplicados. Seria interessante vc criar um ambiente teste e utilizar as variáveis /C /H /E /O

    E quanto ao EXCLUDE, utilizar na extensão .MDB.

    Isso se na pasta D:\APPS\PROG_SPL\Logistica\ possuir algum BD.

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    segunda-feira, 23 de novembro de 2009 15:53
  • Marcellus, boa tarde!

              As 2 unidades estão em utilização, e dentro da partição: D:\APPS\PROG_SPL\Logistica para minha maior alegria (rsrs) tem varios arquivos de Access espalhados em outras subpastas, ou seja, bem organizado...rsrs. Estava pensando na seguinte situação:

    a-) Copiar esta pasta \Logistica da partição D:\ para a minha máquina, o total dela é de 5GB tenho espaço em disco para isso, porem a estrutura vai mudar irá ficar:
    C:\APPS\PROG_SPL\Logistica na minha máquina

    b-) Criar uma pasta na outra partição no minha máquina, como D:\BRSPA\SPL\LOGISTICS\

    c-) Estarei fazendo os testes na minha máquina, antes de realizar no servidor. A minha dúvida é, ao realizar esta cópia o Owner das pastas e arquivos que estão no servidor irá manter o mesmo, ou vai ficar com o meu usuário no ACL?

    Segue o arquivo de script alterado

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\BRSPA\SPL\LOGISTICS\*.*  /C /H /E /-Y /O /EXCLUDE: .MDB


    Mais uma vez, obrigado!


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    segunda-feira, 23 de novembro de 2009 16:23
  • Marcellus, boa tarde!

              As 2 unidades estão em utilização, e dentro da partição: D:\APPS\PROG_SPL\Logistica para minha maior alegria (rsrs) tem varios arquivos de Access espalhados em outras subpastas, ou seja, bem organizado...rsrs. Estava pensando na seguinte situação:

    a-) Copiar esta pasta \Logistica da partição D:\ para a minha máquina, o total dela é de 5GB tenho espaço em disco para isso, porem a estrutura vai mudar irá ficar:
    C:\APPS\PROG_SPL\Logistica na minha máquina

    b-) Criar uma pasta na outra partição no minha máquina, como D:\BRSPA\SPL\LOGISTICS\

    c-) Estarei fazendo os testes na minha máquina, antes de realizar no servidor. A minha dúvida é, ao realizar esta cópia o Owner das pastas e arquivos que estão no servidor irá manter o mesmo, ou vai ficar com o meu usuário no ACL?

    Segue o arquivo de script alterado

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\BRSPA\SPL\LOGISTICS\*.*  /C /H /E /-Y /O /EXCLUDE: .MDB


    Mais uma vez, obrigado!


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil

    Fabio, boa tarde.

    Quando vc copiar para o seu terminal ele não perde o permissionamento. O mais interessante seria vc compartilhar uma pasta em seu terminal, após isso copiar todo o conteudo do E:\BRSPA\SPL\LOGISTICS\, e rodar o xCOPY apontando para seu terminal.

    Crie um arquivo Lista.txt e coloque as extensões dentro dele por linha:

    .mdb
    .txt
    .arj

    Com isso vc aponta o EXCLUDE para a Lista.txt
    O > LogTeste.txt  vai ser o log da copia dos arquivos.

    @ECHO a| XCOPY \\SEUSERVIDOR\Logistica\*.* \\SEUTERMINAL\BRSPA\SPL\LOGISTICS\  /C /H /E /-Y /O /EXCLUDE:c:\Lista.txt > LOGteste.txt

    Com isso seria o mesmo ambiente que o servidor.

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    segunda-feira, 23 de novembro de 2009 17:03
  • Olá Marcellus,

    Agradeço mais uma vez o auxílio, estava realizando um teste para o meu terminal algumas pastas tanto do compartilhamento citado acima, como do servidor para o meu terminal com as pastas já compartilhadas, porém para minha surpresa os ACL's e os Owners mudaram para o meu login de rede, ou seja, não permaneceu os owner's de origem...Será que tem mais alguma coisa que precise ser modificado?

    No meu terminal ficou dessa forma:

    C:\APPS\PROG_SPL\Logistica:  A pasta APPS ficou compartilhada
    D:\BRSPA\SPL\LOGISTICS: A pasta BRSPA ficou compartilhada

    Obrigado


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    segunda-feira, 23 de novembro de 2009 18:56
  • Olá Marcellus,

    Agradeço mais uma vez o auxílio, estava realizando um teste para o meu terminal algumas pastas tanto do compartilhamento citado acima, como do servidor para o meu terminal com as pastas já compartilhadas, porém para minha surpresa os ACL's e os Owners mudaram para o meu login de rede, ou seja, não permaneceu os owner's de origem...Será que tem mais alguma coisa que precise ser modificado?

    No meu terminal ficou dessa forma:

    C:\APPS\PROG_SPL\Logistica:  A pasta APPS ficou compartilhada
    D:\BRSPA\SPL\LOGISTICS: A pasta BRSPA ficou compartilhada

    Obrigado


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    Fabio boa noite. Efetuei os testes em meu ambiente e realmente ele diferenciou as permissões porém, no próprio servidor ele não apresentou nenhume erro.
    Crie esse ambiente teste no proprio servidor e verifique se ira apresentar algum erro...


    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    segunda-feira, 23 de novembro de 2009 23:56
  • Marcellus, boa tarde!

    Estava realizando um teste novamente com o arquivo bat, diretamente no servidor com a seguinte estrutura

    a-) Criado as seguintes subpastas na partição DATA (D:\)
    D:\TESTE\PROG_SPL\LOGISTICA

    Porém está apresentando o seguinte erro:

    Invalid number of parameters
    Press any key to continue

    O arquivo BAT está da seguinte forma:

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\TESTE\PROG_SPL\LOGISTICA*.*  /C /H /E /-Y /O /EXCLUDE: .MDB

    PAUSE


    Poderia me auxiliar novamente neste caso?

    Obrigado


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    terça-feira, 24 de novembro de 2009 18:13
  • Olá,

    Verifique a linha


    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\TESTE\PROG_SPL\LOGISTICA*.*  /C /H /E /-Y /O /EXCLUDE: .MDB

    Tente:

    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\TESTE\PROG_SPL\LOGISTICA  /C /H /E /-Y /O /EXCLUDE: .MDB


    Até mais,

    Jesiel

    Obs.: Se útil, classififque


    terça-feira, 24 de novembro de 2009 18:27
  • Marcellus, boa tarde!

    Estava realizando um teste novamente com o arquivo bat, diretamente no servidor com a seguinte estrutura

    a-) Criado as seguintes subpastas na partição DATA (D:\)
    D:\TESTE\PROG_SPL\LOGISTICA

    Porém está apresentando o seguinte erro:

    Invalid number of parameters
    Press any key to continue

    O arquivo BAT está da seguinte forma:

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\TESTE\PROG_SPL\LOGISTICA*.*  /C /H /E /-Y /O /EXCLUDE: .MDB

    PAUSE


    Poderia me auxiliar novamente neste caso?

    Obrigado


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!

    Fabio, boa tarde.

    O comando EXCLUDE retorna erro devido a seu parametro:
    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\TESTE\PROG_SPL\LOGISTICA  /C /H /E /-Y /O /EXCLUDE: .MDB
    O correto é criar um arquivo .txt em um local, dentro dele salvar as extensões que não deseja copiar....

    Local: c:
    Arquivo.txt
    Conteudo:

    .mdb


    E apontar na chamada do xCOPY. Ele irá ler o conteúdo do arquivo e não copiara as extensões que nele estiverem.
    Ex:

    @ECHO a| XCOPY C:\APPS\PROG_SPL\Logistica\*.* D:\TESTE\PROG_SPL\LOGISTICA  /C /H /E /-Y /O /EXCLUDE:c:\Arquivo.txt





    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    terça-feira, 24 de novembro de 2009 18:59
  • Marcellus, bom dia!

    Agradeço à ajuda, agora conseguimos a copiar os arquivos menos a extensão *.mdb, contudo teria como saber se ele copiou todos os arquivos mesmos, afim de não termos surpresas desagrdáveis do tipo, ficou faltando alguma pasta ou outros arquivos? Na tela do script aparece quando está copiando os arquivos, mas seria bom ter 100% de certeza, isto é possível? Segue abaixo o script final

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY D:\APPS\PROG_SPL\LOGISTICA\*.* E:\TESTE_BRSPA\LOGISTICA\ /C /H /E /-Y /O /EXCLUDE:D:\TESTE.txt

    PAUSE

    Obrigado mais uma vez


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    quarta-feira, 25 de novembro de 2009 11:52
  • Marcellus, bom dia!

    Agradeço à ajuda, agora conseguimos a copiar os arquivos menos a extensão *.mdb, contudo teria como saber se ele copiou todos os arquivos mesmos, afim de não termos surpresas desagrdáveis do tipo, ficou faltando alguma pasta ou outros arquivos? Na tela do script aparece quando está copiando os arquivos, mas seria bom ter 100% de certeza, isto é possível? Segue abaixo o script final

    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY D:\APPS\PROG_SPL\LOGISTICA\*.* E:\TESTE_BRSPA\LOGISTICA\ /C /H /E /-Y /O /EXCLUDE:D:\TESTE.txt

    PAUSE

    Obrigado mais uma vez


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!

    Sem problemas....

    Insira ao final do arquivo... > LOGCopia.txt

    Assim vc terá o log dos arquivos copiados podendo validar....

    []s,


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    • Marcado como Resposta Fabio-Ferreira quarta-feira, 25 de novembro de 2009 18:09
    quarta-feira, 25 de novembro de 2009 12:43
  • Apenas complementando, quanto eu efetuo esse tipo de processo. Procuro manter os arquivos em ambas as partes por um determinado período. Ou um backup. Até os usuários validarem seus arquivos.

    []s,

    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    quarta-feira, 25 de novembro de 2009 12:44
  • Boa tarde Marcellus,

    Agradeço por este auxilio neste caso, espero que outros profissionais possam se espelhar com seu conhecimento, sem que fica restrito à apenas uma pessoa. Quem sabe algum dia isso acontece na área de T.I... É o que esperamos...

    Um abraço...

    Valeu... :D

    Obs: Caso queiram a cópia do script, segue abaixo um exemplo, apenas altere o caminho de pastas e a origem delas...


    @ECHO OFF
    ECHO [COPIANDO DADOS ...]
    @ECHO a| XCOPY D:\APPS\PROG_SPL\LOGISTICA\*.* E:\TESTE_BRSPA\LOGISTICA\ /C /H /E /-Y /O /EXCLUDE:D:\TESTE.txt > LOGTESTE_COPIA.txt

    PAUSE


    Fabio Ferreira Support Analyst Pleno (MCP+MCDST) Obs: Se for adequada a resposta, classifique-a como útil!
    quarta-feira, 25 de novembro de 2009 18:12