Estoy intentando limpiar algunos nombres de archivos en una carpeta en particular y me pregunto cómo haría para crear un archivo por lotes para eliminar un signo menos desde el principio de cada nombre de archivo.
Tengo un montón de archivos con el patrón -FileName.pdf y me gustaría eliminar el signo menos del frente para tener solo FileName.pdf.
Hasta ahora tengo el siguiente comando:
dir /B > Batch.txt
for /f "tokens=1,2" %i in (Batch.txt) DO ren "%i %j" %l
¿Hay algo más simple que pueda usar?
gracias de antemano
Respuesta1
Me gustaría quitar el signo menos del frente.
Utilice el siguiente archivo por lotes:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b -*.pdf') do (
set _fname=%%i
echo ren %%i !_fname:~1!
)
Notas:
- Esto eliminará el primer carácter de todos los nombres de archivos que coincidan con la expresión
-*.pdf
. - Reemplace
echo ren
conren
cuando esté seguro de que el archivo por lotes cambiará el nombre correctamente.
Otras lecturas
- Un índice AZ de la línea de comando CMD de Windows- Una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- directorio- Mostrar una lista de archivos y subcarpetas.
- expansión retrasada habilitada- La expansión retrasada hará que las variables se expandan en el momento de la ejecución en lugar de en el momento del análisis.
- para /f- Comando de bucle contra los resultados de otro comando.
- colocar- Mostrar, configurar o eliminar variables de entorno CMD. Los cambios realizados con SET permanecerán solo durante la sesión CMD actual.
- establecer local- Establecer opciones para controlar la visibilidad de las variables de entorno en un archivo por lotes.
Respuesta2
yo sueloComandante libre XEque tiene una útil función de cambio de nombre múltiple que le permite obtener una vista previa de los resultados antes de cambiar el nombre de un grupo de archivos usando un patrón.