elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda para renombrar archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para renombrar archivos  (Leído 4,962 veces)
indruin

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda para renombrar archivos
« en: 6 Julio 2012, 23:00 pm »

Hola a tod@s!!

Tengo una carpeta con mas de 100 archivos, todos con el mismo nombre mas un identificador numerico, digamos archivo1.txt, archivo2.txt, archivo3.txt... etc

Quisiera cambiarles el nombre de acuerdo a una lista en txt:

1JuanPerez.txt
2PedroPerez.txt
3CamiloPerez.txt
etc

es decir al "archivo1.txt"  renombrarlo  como "1JuanPerez.txt", obteniendo el nuevo nombre desde el listado dentro del txt y asi para todos los archivos...


Es posible esto?

Desde ya muchas gracias!


En línea

Anvil

Desconectado Desconectado

Mensajes: 38



Ver Perfil
Re: Ayuda para renombrar archivos
« Respuesta #1 en: 6 Julio 2012, 23:11 pm »

Si es posible, para hacerlo tendrías que crear un archivo txt que tenga la información de que nombre de archivo actual mapear con el nombre de archivo que quieres, ejemplo:

Código:
# nombres de archivo actuales act.txt
1.txt
2.txt
3.txt
9.txt
10.txt

Código:
# nuevos nombres de archivo nuv.txt
juan.txt
pedro.txt
sam.txt
mer.txt
edi.txt

Después en pseudocódigo lo que deberías de obtener es lo siguiente

Código:
void main()
{
// leemos el contenido del archivo
string file_actual = leer("act.txt");
string file_nuevos = leer("nuv.txt");

// dividimos la cadena a partir del salto de linea
string[] nombres_actuales = file_actual.tokenize("\n");
string[] nombres_nuevos = file_nuvos.tokenize("\n");

// checamos que tengan la misma longitud
if(nombres_actuales.length != nombres_nuevos.length)
{
// si no la tienne imprimir mensaje de error y regresar
print("No tienen la misma longitud");
return;
}

// si tienen la misma longitud ahora hay que renombrar
// recorremos el arreglo con los nombres actuales
for(var i = 0; i < nombres_actuales.length; i++)
{
// obtenemos la referencia al archivo
File f = open(nombres_actuales[i]);
// renombramos el archivo
f.rename(nombres_nuevos[i]);
// salvamos el archivo
f.save();
}
}


En línea

\\::_--__!!ss"1122
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Ayuda para renombrar archivos
« Respuesta #2 en: 7 Julio 2012, 00:50 am »

Suponiendo que hay X cantidad de archivos.txt, Y la misma cantidad de lineas con un nombre escrito en la "lista.txt", Esto te funcionaría:

Test.bat
Código:
@Echo OFF
Setlocal enabledelayedexpansion

Set "LISTA=Lista.txt"

For /F "Tokens=*" %%# in ('Type "%LISTA%"') Do (
Set /A NUM+=1
Echo Renombrando: Archivo!NUM!.txt ^> !NUM!%%#.txt
RENAME "Archivo!NUM!.txt" "!NUM!%%#.txt"
)

Pause
Exit



Lista.txt
Código:
jose
kosta
pepe
jaime
christian





EDITO: Si la lista.txt es más bien así:
Código:
1JuanPerez.txt
2PedroPerez.txt
3CamiloPerez.txt
(Con número al principio, Y extensión al final)

Entonces modifica esta línea en el código de arriba:
Código:
RENAME "Archivo!NUM!.txt" "%%#"

Saludos
« Última modificación: 7 Julio 2012, 00:57 am por EleKtro H@cker » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] renombrar archivos
Scripting
guidosl 3 9,967 Último mensaje 15 Marzo 2009, 05:03 am
por leogtz
Unlocker, el programa para desbloquear y renombrar archivos
Noticias
wolfbcn 2 3,163 Último mensaje 10 Noviembre 2011, 18:31 pm
por simorg
renombrar archivos bat « 1 2 »
Scripting
charlyta 10 14,809 Último mensaje 12 Marzo 2012, 18:35 pm
por -- KiLiaN --
ayuda! para RENOMBRAR varias carpetas dentro de otra
Scripting
ronal_ferlan 4 3,902 Último mensaje 4 Marzo 2013, 23:35 pm
por dato000
batch para recorrer todos los subdirectorios y renombrar archivos
Scripting
alecam987 1 9,491 Último mensaje 28 Noviembre 2013, 18:07 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines