Intentando escribir un script para cambiar el final de los nombres de archivo con una extensión .bat
Tengo un montón de archivos que necesito renombrar. Tienen una longitud variable. Así:
A1B2C3D4.en.fr.pdf
A1B2C3D4S8.it.fr.pdf
A1B2C3.de.fr.pdf
A1B2C3D4E5.zn.fr.pdf
Quiero cambiarlos para que pueda ejecutar un archivo .bat y hacer dos cambios:
1. agregarles a todos un prefijo estático, XYZ10;
2. reemplazar el final variable de “. * .fr.pdf” con “FRFR.pdf”
Entonces se verán así:
XYZ10A1B2C3D4FRFR.pdf
XYZ10A1B2C3D4S8FR.pdf
XYZ10A1B2C3FRFR.pdf
XYZ10A1B2C3D4E5FRFR.pdf
Lo he estado haciendo en pasos individuales cada vez con PowerShell, pero es una molestia seguir haciéndolo y a veces lo hace incorrectamente.
He intentado esto:
@echo off
ren *.??.fr.pdf *.FRFR.pdf
pero solo los hace verse así:
A1B2C3D4E5.zn.fr.FRFR.pdf
No sé por dónde empezar con el prefijo, no entiendo realmente ninguna de las cosas que he estado leyendo al respecto …
EDITAR:
Esto es lo que he estado haciendo para el prefijo en PowerShell.
Dir *.pdf | rename-item -newname {“XYZ10″+$_.Name}
davy.ai
Para cambiar el nombre de un conjunto de archivos con longitud variable mediante un archivo por lotes, puedes usar los siguientes comandos:
Este archivo por lotes utiliza un bucle para renombrar cada archivo individualmente con el prefijo y sufijo deseados. Así es como funciona:
setlocal enabledelayedexpansion
se usa para habilitar la expansión retardada de variables en el bucle.set "StaticPrefix=XYZ10"
establece una variable que contiene el prefijo estático que desea agregar a todos los archivos.for %%a in (*.fr.pdf) do (
inicia un bucle que iterará sobre todos los archivos en el directorio actual con la extensión “.fr.pdf”.set "VariableEnd=%%~xa"
extrae la extensión del archivo actual y la guarda en una variable.set "NewName=!StaticPrefix!%%~naFRFR!VariableEnd!"
crea un nombre nuevo para el archivo concatenando el prefijo estático, el nombre del archivo (sin extensión), el sufijo deseado y la extensión del archivo.ren "%%~a" "!NewName!"
renombra el archivo actual con el nuevo nombre.Con estos comandos, debería poder renombrar todos sus archivos de una vez, sin tener que usar PowerShell u otras herramientas.