1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Batch File para copiar o nome de um ficheiro para outro

Discussão em 'Programação' iniciada por Kwan, 18 de Outubro de 2012. (Respostas: 8; Visualizações: 1444)

  1. Kwan

    Kwan Power Member

    Boas,

    Gostaria de fazer um batch file para uma tarefa simples como mudar o nome de um ficheiro.

    A ideia seria eu pegar num ficheiro .avi e aplicar o nome desse ficheiro a um ficheiro .txt
    Alguém me pode ajudar nisto?

    Obrigado
     
  2. Kwan

    Kwan Power Member

    Creio que deveria fazer algo deste género:

    Código:
    ren *.srt *.avi
    Mas isto iria apenas alterar a extensão do meu ficheiro .srt para .avi
    Como é que eu posso definir na batch que quero usar o nome do ficheiro exemplo.avi e aplica-lo ao ficheiro teste.srt de modo ficar no final com:

    exemplo.avi
    exemplo.srt
     
  3. Em batch sinceramente não te posso ajudar.
    Mas se keres um programita que te faça isso rápidamente aqui tens. Acabei de fazer, se quiseres mando o Source, está em C#
    http://dl.dropbox.com/u/18887213/Renamer.rar

    Arrasta os 2 ficheiros que queres renomear, o avi e o srt para o icon do programa e ele faz o resto.
    Caso não arrastes o srt ele cria-o na pasta do avi.
    Se tiveres um avi numa pasta e um srt noutra, ele não faz rename do srt mas copia um igual com o nome do avi para a pasta onde o avi se encontra.
    É só isso, drag and drop em cima do icon e siga.

    Achei por bem colocar aqui o source:
    http://dl.dropbox.com/u/18887213/Renamer_src.rar

    Nota:
    Se conseguires fazer isso em batch avisa.

    Melhores cumprimentos,
    João Lopes
     
  4. Esfomeado

    Esfomeado Power Member

    Em batch não faço a minima como se faz e até se será possivel.
    Podes é fazer facilmente um pequeno programa em C para resolver o problema.
    Se não souberes como se faz posso-te ajudar.
     
  5. Kwan

    Kwan Power Member

    Proof obrigado, mas queria mesmo ser eu a fazer para aprender.

    Já consigo mudar o nome com o batch file com um pequeno senão. O ficheiro .srt fica com .avi no nome. No exemplo anterior fica assim:
    exemplo.avi
    exemplo.avi.srt

    O código é este:

    Código:
    @echo off
    dir *.mp3 /b "C:\Batch files" >>filelist.txt
    
    
    for /f "tokens=1* delims=|" %%a in (filelist.txt) do (
           
          ren *.srt "%%a".srt
    )
    
    
    del filelist.txt
    Alguém sabe como posso cortar o .avi do ficheiro .srt

    Esfomeado, como farias em C?
    Sei um pouco da linguagem mas não tou a ver como manipulavas os ficheiros. Já agr por curiosidade se me conseguisses por aí ficava mto agradecido :)
     
  6. Esfomeado

    Esfomeado Power Member

    Explica-me antes uma coisa. Queres mudar um nome um ficheiro de cada vez ou mudar a todos os ficheiros contidos numa pasta?
     
  7. Kwan

    Kwan Power Member

    Apenas um ficheiro. No código da Batch sei que ele altera os nomes de todos os ficheiros .srt (fiz isso pq o nome do ficheiro .srt não há-de ser sempre o mesmo e não sei mto bem passar isso como argumento de uma função numa batch) mas posso contornar isso pondo na pasta apenas os ficheiros .avi e .srt que desejo.
     
  8. Esfomeado

    Esfomeado Power Member

    Em C consigo fazer mas terias ter que meter os nomes dos ficheiros.

    Ex:
    converter.exe video legenda.str
     
  9. Kwan

    Kwan Power Member

    Solução final :)

    Código:
    @echo off
    
    dir *.mp3 /b "C:\Batch files" >>filelist.txt
    
    for /f "tokens=1* delims=." %%a in (filelist.txt) do (
    ren *.srt "%%a".srt
    )
    
    
    del filelist.txt
     
    Última edição: 18 de Outubro de 2012

Partilhar esta Página