Script para mudar o nome de ficheiros

_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
 
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
 
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
 
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:
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
 
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?
 
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
 
o que tu queres é isto
jf123456->sa123456->mj123456
??

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:
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.
 
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.
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.
 
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.

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.
 
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
 
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.
 
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
 
Reparei que colocaste a mesma questão no p@p...
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:
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
 
slack_guy ja fui ver na p@p a tua resposta..brigadao
desculpa as mudanças..só tou a tentar aprender umas coisas e solucionar um problema

brigadao pela ajuda.
cumps
 
Back
Topo