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

Script para mudar o nome de ficheiros

Discussão em 'Programação' iniciada por _JInGAmIX_, 20 de Novembro de 2008. (Respostas: 18; Visualizações: 1264)

  1. _JInGAmIX_

    _JInGAmIX_ Power Member

    boas..

    não sei se alguem me pode ajudar...
    precisava de arranjar um script (ou talvez um programa, o que ainda era melhor) que desse para mudar o nome dos ficheiros, isto é, imaginem que tem um ficheiro que se chama "jf123456" e querem que ele mude de nome de 2 em 2 dias..ficaria por exemplo "sa123456"...

    se alguem me puder ajudar agradecia

    cumps
     
  2. _JInGAmIX_

    _JInGAmIX_ Power Member

    HELP!!!

    será possivel alguem ajudara-me...ja tive mais umas informacões e pode ser tipo um ficheiro batch k kuando kliko nele ele muda o nome do ficheiro...ate pode ser + k uma vez por dia..tipo executo o ficheiro batch e ele muda de nome o ficheiro e actualiza para o novo nome, para quando kiser mudar outra vez, pois o ficheiro que pretendo mudar de nome é sempre o mesmo..

    need help please!!!

    cumps
     
  3. Armadillo

    Armadillo Folding Member

    batch
    Código:
    [SIZE=3]REN OLDSTUFF.TXT [/SIZE][SIZE=3]NEWSTUFF.TXT[/SIZE][SIZE=3]
    
    [/SIZE]
     
  4. _JInGAmIX_

    _JInGAmIX_ Power Member

    boas armadillo..

    desde ja agradeco a tua ajuda...mas faco um ficheiro batch com esse codigo??
    e como é que ele sabe kual é o ficheiro k kero mudar o nome..?
    e depois ele actualiza para o novo nome para depois o poder renomear novamente??
    ja vi k percebes do assunto, se me puderes ajudar agradecia mt..

    cumps
     
  5. Armadillo

    Armadillo Folding Member

    Considera este facto: Tu tens um ficheiro com o nome "OLDSTUFF.TXT" e queres mudar o nome desse ficheiro para "NEWSTUFF.TXT".

    Ou seja, tu no batch, tens que chamar o comando "REN", que é o que vai mudar o nome do ficheiro, e tens que dizer qual é o nome do ficheiro a que queres mudar o nome (no exemplo que dei é o "OLDSTUFF.TXT") para um outro nome (exemplo dado é "NEWSTUFF.TXT")


    daí vem :
    Código:
    REN OLDSTUFF.TXT NEWSTUFF.TXT 
    
    espero ter sido explicito. ;)
     
    Última edição: 26 de Novembro de 2008
  6. _JInGAmIX_

    _JInGAmIX_ Power Member

    fixe..já tou a perceber...
    tão mas depois se eu clicar outra vez no batch já não vai fazer nada porquw já mudou para o nome, ou seja isso só da para fazer uma vez..como é que eu posso fazer para ele actualizar para o o novo nome, para k eu possa muda-lo de nome novamente..???
    brigadao pela ajuda
    cumps
     
  7. Armadillo

    Armadillo Folding Member

    não podes ter 2 ficheiros com o mesmo nome num directório.
    Ou moves o ficheiro para um outro directório ou então mudas o nome do novo ficheiro no batch.
    A solução ideal seria, por cada renomeação, adicionar ao nome do ficheiro a data.

    Mas olha uma coisa, esta solução não me parece ser a mais indicada para o teu problema. Porque raio é que tens sempre um ficheiro com o mesmo nome a "cair" num directório?
     
  8. _JInGAmIX_

    _JInGAmIX_ Power Member

    calma...
    não tas a perceber...imagina uma pasta com 50 ficheiros la dentro de varias extensões e existe um ficheiro que eu preciso de mudar o nome só um de uma extensão qualquer, imagina que tenho um ficheiro com o nome "jf123456" e quando clico no batch ele muda para "sa123456" e depois clico outra vez e ele muda de "sa123456" para "mj123456", por exemplo...o ficheiro é só um o que eu quero é, sempre que precisar de mudar o nome a esse ficheiro seja só clicar no batch. ou seja se clica-se 50 vezes no batch ele mudava 50 vezes de nome mas sempre o mesmo ficheiro, provavelmente já vai ter que haver um pedaço de código que vai gerar novos nomes ou caracteres, visto que basta mudar 2 caracteres..
    acho que fui explicito naquilo que necessito, se me puderes ajudar..
    miudo brigadao pela ajuda..
    cumps
     
  9. Armadillo

    Armadillo Folding Member

    o que tu queres é isto
    ??

    e os 50 cliques entram aonde? ou seja, se clicares 50 vezes, ele vai ter que criar por obra do espirito santo novos nomes. ;)
    não é assim tao linear como parece o que tu queres, daí eu ter sugerido usar a "nomeFich+data".
     
    Última edição: 26 de Novembro de 2008
  10. Mavors

    Mavors Power Member

    Bem, com batchfile não sei se isso é possivel.

    Mas com um pequeno programinha em VB ou Java com persistência de uma variavel para ficheiro conseguias fazer isso, uma vez que tinhas sempre a referencia do nome anterior e fazias random apenas às duas primeiras letras para rename posterior.

    De qualquer forma a questão é: para quê tanto trabalho para mudar duas letras?
    Carregas no ficheiro e fazes rename.. A não ser que eu esteja a perceber mal a dimensão da questão.
     
  11. Armadillo

    Armadillo Folding Member

    o problema é saber depois o nome do ficheiro, depois do rename. Só gravando a info. num ficheiro ou qualquer coisa é que a coisa é exequível.
     
  12. Mavors

    Mavors Power Member

    Yep, por isso é que falei da persistencia de uma variavel para ficheiro, precisamente para guardares o nome para qual renomeaste esse mesmo ficheiro.

    O programa iria ler essa String no inicio para saber para qual nome ele tinha mudado. Quem diz ficheiro diz BD, ou um ficheiro XML ou qq outra coisa. lol, mas acho que é uma operação megalomana para esse tipo de intervenção que se faz com com o teclado em 2 segundos.
     
  13. _JInGAmIX_

    _JInGAmIX_ Power Member

    bem já percebi que temos aqui profissionais nesta área, eu cá sou um zero a esquerda...mas pronto, vocês já perceberam, é mesmo isso, seu clicar 50 vezes ele tem que mudar o nome 50 vezes.. o problema é que eu não percebo nada de programação, só sei que tenho que indicar o caminho do ficheiro(pois ele muda de nome mas o caminho é sempre o mesmo) a mudar e depois arranjar uma variavel onde ele guarda todos os nomes que ja teve para nao voltar a repetilos e e para que ele saiba sempre o ultimo nome que tem para poder muda-lo....
    brigadao pela ajuda
    cumps
     
  14. Mavors

    Mavors Power Member

    Se não queres repetição o melhor é seguires a indicação do Armadillo e gravares nome+TimeStamp como nome do ficheiro. Uma vez que a data+hora/mm/ss,etc é sempre diferente. Se quiseres fazer random às duas primeiras letras sem repetição só tens 676 combinações possíveis usando o alfabeto latino, e vais ter que criar mais uma função para verificar se o nome que ele gerou aleatoriamente já foi ou não utilizado.

    Acho que estás a complicar bué para uma operação que é simples de fazer manualmente, mas que programaticamente te irá dar algum trabalho, principalmente se dizes que não percebes nada de programação.
     
  15. _JInGAmIX_

    _JInGAmIX_ Power Member

    pois já tou a ver que a nível programático vai ficar bem complicado, mas tem que ser porque tem que ser uma cena automática, como disse la em cima, tipo tenho um icón no ambiente de trabalho, clico e faz isso..
    não tem ideia como é que se pode fazer isso???
    cumps
     
  16. slack_guy

    slack_guy Power Member

    Reparei que colocaste a mesma questão no [email protected]..
    Deixo aqui, também, a minha sugestão para o caso de ser útil a alguém.

    Código:
    #!/usr/bin/perl 
    use strict;
    use warnings;
    use Tie::File;
     
    my $dir = q|/home/slack_guy/|;
    chomp(my $old_name = $dir . (<DATA>));
    my $new_name = int(rand(time)) . '.txt';
    rename($old_name,"$dir$new_name") or system("mv",$old_name,"$dir$new_name");
     
    tie my @FILE, 'Tie::File', $0 or die "$!\n";
    $FILE[-1] = $new_name;
    untie @FILE or die "$!\n";
     
    __DATA__
    ficheiro_original.txt
    
    Ao executar o script, o ficheiro é renomeado para um nome aleatório e o novo nome é guardado na última linha do script, para que, na próxima execução, saiba qual o ficheiro a renomear.
     
    Última edição: 26 de Novembro de 2008
  17. _JInGAmIX_

    _JInGAmIX_ Power Member

    boas pessoal

    desde já agradeço a vossa ajuda
    reformulando o meu programa, é o seguinte...
    imaginemos que temos uma pasta algures no disco que contem, imagine-se 10 ficheiros com o nome "ft0001200.xml" a "ft0001210.xml", mas daqui a pouco ja vai ter mais ficheiros continuando com os nomes "ft0001211.xml", "ft0001212.xml" etc...
    se o programa procurar o nome dos ficheiros começados por "ft" e os mudasse para, por exemplo "co" e como daqui a algum ele vai ter mais ficheiros "ft", porque estes ficheiros fazem parte de um programa que os está sempre a gerar, ou seja, vai ficar com ficheiros "ft" e com os "co" (que antigamente eram "ft") , era só clicar no suposto icon que vai estar no ambiente de trabalho e ele procura os ficheiros que comecem por "ft" novamente, modificando-os então para "co", ficavamos então só com ficheiros "co" novamente. depois imaginemos que eu amanha já tenho lá mais ficheiros começados por "ft"era só clicar novamente.
    torna-se mais fácil assim ou não ??

    cumps
     
  18. slack_guy

    slack_guy Power Member

    Antes era só um ficheiro, agora já são vários ficheiros...
    Ó companheiro!! tens de atinar com o que queres porque nós não sabemos o que se passa aí desse lado.

    EDIT:
    No [email protected] já tens a resposta ao teu novo problema.
     
    Última edição: 27 de Novembro de 2008
  19. _JInGAmIX_

    _JInGAmIX_ Power Member

    slack_guy ja fui ver na [email protected] a tua resposta..brigadao
    desculpa as mudanças..só tou a tentar aprender umas coisas e solucionar um problema

    brigadao pela ajuda.
    cumps
     

Partilhar esta Página