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!
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:
# nombres de archivo actuales act.txt
1.txt
2.txt
3.txt
9.txt
10.txt
# 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
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();
}
}
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
@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
jose
kosta
pepe
jaime
christian
(http://img404.imageshack.us/img404/8357/prtscrcaptureuc.jpg)
EDITO: Si la lista.txt es más bien así:
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:
RENAME "Archivo!NUM!.txt" "%%#"
Saludos