Estaba intentando hacer un programa para renombrar todos los archivos de un directorio que tuvieran una extensión determinada. He hecho este programilla, pero sólo me los renombra en el archivo de texto que saco a modo de registro de cambios, los archivos del directorio continúan con el nombre del principio.
¿Me podéis echar una mano?
Código:
Using perl Syntax Highlighting
- #!/c:/Perl -w
- use strict;
- print "Elige directorio:\n"; #Directorio donde renombrar
- chomp(my $path = <STDIN>);
- chdir $path;
- opendir (TEMP , "$path");
- my @nombres = readdir (TEMP);
- print "Elige nuevo nombre generico:\n"; #Nuevo nombre
- chomp(my $nuevo = <STDIN>);
- print "Elige extension de archivos a renombrar\n"; #Tipo archivos a cambiar
- chomp(my $kind = <STDIN>);
- open SALIDA, ">registro_cambios.txt" || die ("No pudo abrirse el archivo"); #Registro de cambios
- my $head = 1;
- for(@nombres){
- if (/\.$kind$/){
- my $antiguo = $_;
- my $name = ("$nuevo"."$head"."."."$kind");
- $head++;
- rename ($antiguo, $name) ||die "Imposible renombrar" unless $antiguo eq $_;
- print SALIDA ("$name\t\n");
- }
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4