none
Scripts para Mover arquivos de Pastas RRS feed

  • Pergunta

  • Bom Dia!

    Estou com uma duvida para fazer um Script, preciso fazer uma tarefa aqui no trabalho para mover alguns arquivos de uma pasta do Windows para algumas pastas em outro servidor. Por exemplo, eu tenho uma pasta chamada $\entrada dentro dela irão chegar alguns arquivos com os nomes teste1.xxx, teste2.xxx e teste3.xxx, preciso mover desta pasta $\entrada para outro servidor nas pasta respectivas \\servidor1\teste1.xxx, \\servidor1\teste2.xxx e \\servidor1\teste3.xxx.

    Se alguém tiver uma dica de como fazer essas condicionais.

    Obrigado.

    Rodrigo

    terça-feira, 17 de setembro de 2013 14:25

Respostas

  • Com Bat vc pode usar o FORFILES

    SET ORIGEM=c:\temp
    SET DESTINO_1=c:\temp\1
    SET DESTINO_2=c:\temp\2
    
    :: copia 1
    forfiles /P "%ORIGEM%" /M *1.xxx /c "cmd /c move @path %DESTINO_1%"
    
    :: copia 2
    forfiles /P "%ORIGEM%" /M *2.xxx /c "cmd /c move @path %DESTINO_2%"


    Fábio de Paula Junior

    quarta-feira, 18 de setembro de 2013 00:43
    Moderador

Todas as Respostas

  • Rodrigo,

    Bem confuso esse exemplo seu...

    Mas o que deu pra entender é o que tem 1 no nome vai pro compartilhamento 1, o que tem 2 vai pro compartilhamento 2, e assim sucessivamente. Segue script em PowerShell

    #Pasta Entrada
    $Pasta_Entrada="c:\temp"
    
    #Shares
    $Share_1="C:\temp\1"
    $Share_1="C:\temp\2"
    $Share_1="C:\temp\3"
    
    
    #Move os arquivos "1" para o copartilhamento 1
    ls $Pasta_Entrada -Filter "*1.xxx" |  Move-item -force -Destination $Share_1
    
    #Move os arquivos "2" para o copartilhamento 2
    ls $Pasta_Entrada -Filter "*2.xxx" |  Move-item -force -Destination $Share_2
    
    #Move os arquivos "3" para o copartilhamento 3
    ls $Pasta_Entrada -Filter "*3.xxx" |  Move-item -force -Destination $Share_3


    Fábio de Paula Junior

    terça-feira, 17 de setembro de 2013 16:01
    Moderador
  • Fábio,

    Realmente ficou mal explicado, desculpa.

    O que você descreveu é isso mesmo que eu preciso, porem a solicitação aqui é que fosse uma bat.

    A ideia é essa mesmo:

    Pasta de Origem:

    c:\arquivos_de_entrada

    Arquivos dentro delas:

    teste1*.xxx

    teste2*.xxx

    teste3*.xxx

    Pasta de destino:

    (pasta arquivo é a compartilhada)

    \\servidor\arquivos\teste1

    \\servidor\arquivos\teste2

    \\servidor\arquivos\teste3

    O ideia é fazer uma leitura no nome do arquivo e encaminhar para sua pasta de destino correta.

    É possível fazer isso com uma Bat no Windows, pensei em usar também o Robocopy , porem não achei os parâmetros exatos.

    Obrigado.

    Rodrigo

    terça-feira, 17 de setembro de 2013 16:51
  • Com Bat vc pode usar o FORFILES

    SET ORIGEM=c:\temp
    SET DESTINO_1=c:\temp\1
    SET DESTINO_2=c:\temp\2
    
    :: copia 1
    forfiles /P "%ORIGEM%" /M *1.xxx /c "cmd /c move @path %DESTINO_1%"
    
    :: copia 2
    forfiles /P "%ORIGEM%" /M *2.xxx /c "cmd /c move @path %DESTINO_2%"


    Fábio de Paula Junior

    quarta-feira, 18 de setembro de 2013 00:43
    Moderador
  • Com Bat vc pode usar o FORFILES

    SET ORIGEM=c:\temp
    SET DESTINO_1=c:\temp\1
    SET DESTINO_2=c:\temp\2
    
    :: copia 1
    forfiles /P "%ORIGEM%" /M *1.xxx /c "cmd /c move @path %DESTINO_1%"
    
    :: copia 2
    forfiles /P "%ORIGEM%" /M *2.xxx /c "cmd /c move @path %DESTINO_2%"


    Fábio de Paula Junior

    Rodrigo, e quando move o arquivo para uma pasta que não existia o sistema cria um arquivo sem extensão e não permite visualizar o que foi movido. Tem como reverter?
    quarta-feira, 28 de outubro de 2015 22:08
  • Fábio, me ajudou bastante este script!

    Na minha situação, preciso também deletar os arquivos com mais de 30 dias. Tenho o trecho abaixo, só que ele utiliza a data de modificação, não de criação, tem algum outro jeito?

    forfiles -p %ORIGEM% -s -d -30 -m *.bak -c "cmd /c del /f /q @path"

    Se eu mover este arquivo para outra pasta ele já não o identifica com os parâmetros acima, mesmo o arquivo tendo +30 dias.


    --------------------------

    Rafael Maciel


    • Editado RafaelPMaciel segunda-feira, 14 de março de 2016 20:39 novo argumento
    segunda-feira, 14 de março de 2016 20:32