none
Script para movimentar arquivos de uma lista para uma lista de diretórios RRS feed

  • Pergunta

  • Ola, 

    gostaria de escrever um script (bat para DOS mesmo) para mover arquivos em uma lista (Lista A) para uma lista de diretórios
    (Lista B). 
    A relação é um pra um, isto é, não vou mover todos os arquivos listados, mas um arquivo para cada dire-
    tório de acordo com a listagem. Primeiro arquivo da Lista A para o primeiro diretório da Lista B e assim por diante.
    Obrigado
    sexta-feira, 25 de julho de 2014 14:02

Respostas

  • Marcelo,

    Eu utilizaria o PowerShell.

    $Arquivos   = get-content "c:\temp\arquivos.txt"
    $Diretorios = get-content "c:\temp\diretorios.txt"
    
    $contador=0
    foreach($Arquivo in $Arquivos){
    
        Copy-Item $Arquivo $Diretorios[$contador]
        $contador++
    
    }

    As duas primeiras linhas carregam o conteúdo dos arquivos para um array (dois arrays).

    Em seguida eu leio um dos arrays e com o auxilio de um contador eu executo a cópia.


    Fábio de Paula Junior

    • Marcado como Resposta MarceloPMachado terça-feira, 5 de agosto de 2014 14:17
    sexta-feira, 1 de agosto de 2014 17:58
    Moderador

Todas as Respostas

  • Bom dia Marcelo,

    O que você fez até agora?


    Att, Paulo Rocha MCP | MCDST | MCSA Server 2012

    sexta-feira, 25 de julho de 2014 14:50
  • Ola Paulo, tudo bem?

    Ate agora eu fiz uma rotina para gerar os diretórios a partir de uma lista (Lista B), utilizando o comando "for". 

    Entretanto, nao sei como incluir nessa rotina uma outra chamada para mover os arquivos de uma lista (Lista A) para essa recem criada estrutura de diretorios a partir da lista B.  

    Segue a rotina de criacao de diretorios a partir de uma lista (Lista B)

    for /f %%d in (lista_B.txt) do md %%d

    Obrigado

    sexta-feira, 1 de agosto de 2014 13:27
  • Marcelo,

    Eu utilizaria o PowerShell.

    $Arquivos   = get-content "c:\temp\arquivos.txt"
    $Diretorios = get-content "c:\temp\diretorios.txt"
    
    $contador=0
    foreach($Arquivo in $Arquivos){
    
        Copy-Item $Arquivo $Diretorios[$contador]
        $contador++
    
    }

    As duas primeiras linhas carregam o conteúdo dos arquivos para um array (dois arrays).

    Em seguida eu leio um dos arrays e com o auxilio de um contador eu executo a cópia.


    Fábio de Paula Junior

    • Marcado como Resposta MarceloPMachado terça-feira, 5 de agosto de 2014 14:17
    sexta-feira, 1 de agosto de 2014 17:58
    Moderador
  • Bom dia Marcelo

    Isto é um comando bem simples.

    O comando é o move.

    Exemplo:

    Entendendo que a pasta A e pasta B estão em c:\ ficaria assim:

    c: - para ir direto para c:\, só mais um alerta caso o prompt não fique em c:\ direto digite cd.. até conseguir chegar em c:\

    cd a - para entrar na pasta A

    move *.* c:\b  - esse comando move todos os arquivos para pasta c:\b

    para enviar um único arquivo basta colocar o nome do arquivo no lugar de *.*

    pra enviar para outro local basta trocar c:\b pelo caminho desejado.

    o comando move possui muitas outras opções para vê-las digite: move/? em um prompt de comando.

    Espero ter ajudado.

    Ronaldo.


    segunda-feira, 4 de agosto de 2014 14:13
  • Funcionou muito bem! Obrigado pela ajuda!!
    terça-feira, 5 de agosto de 2014 14:16