Tengo 100 archivos .png en una carpeta que dice test.png, ejemplo.png, etc.
Quiero anteponerlos New_
para que se les cambie el nombre New_test.png
, New_example.png
etc.
¿Cómo puedo hacerlo en Shell?
Respuesta1
No especificaste un sistema operativo. Esta respuesta supone Windows.
Mi primer pensamiento fue un comando simple como
for %f in (*.png) do rename "%f" "New_%f"
Pero a.png
primero se cambió el nombre de un archivo llamado New_a.png
y se movió hacia abajo en orden alfabético :-( El bucle cambió el nombre de este archivo asegundohora de New_New_a.png.
Por tanto, esto debe realizarse en dos pasos:
dir /b *.png > png.txt
for /F %l in (png.txt) do rename "%l" "New_%l"
del png.txt
La primera línea crea un archivo de texto que contiene los nombres de todos los archivos png en el directorio actual. La segunda línea analiza cada línea del archivo y cambia el nombre de los png.