Cómo renombrar extensiones de archivo en masa con un solo script
- 558Palabras
- 3Minutos
- 18 Jul, 2024
En ciertas ocasiones, podemos necesitar renombrar en masa las extensiones de archivos, por ejemplo, cambiar todos los archivos .txt
a .md
. Este artículo explica en detalle cómo usar un archivo por lotes (.bat) y un script de Shell para lograr este objetivo, incluyendo pasos detallados e indicaciones para la interacción del usuario.
Implementación con archivo por lotes
Vamos a crear un script por lotes (.bat) que guiará al usuario paso a paso para renombrar en masa las extensiones de archivos.
1. Crear el archivo por lotes
Cree un archivo llamado rename_extension.bat
y copie el siguiente contenido en él:
1@echo off2setlocal enabledelayedexpansion3
4rem Step 1: Prompt user for the directory5set "dir="6set /p dir="Please enter the directory you want to modify: "7
8rem Step 2: Ask if user wants to include subdirectories9set "include_subdirs="10set /p include_subdirs="Do you want to include all subdirectories? (y/n): "11
12rem Step 3: Prompt user for the original and new file extensions13set "orig_ext="14set /p orig_ext="Enter the original file extension (without dot): "15set "new_ext="16set /p new_ext="Enter the new file extension (without dot): "17
18rem Step 4: Perform the renaming operation19if /i "%include_subdirs%"=="y" (20 rem Include subdirectories21 for /r "%dir%" %%f in (*.%orig_ext%) do (22 set "filepath=%%f"23 ren "%%f" "%%~nf.%new_ext%"24 )25) else (26 rem Do not include subdirectories27 for %%f in ("%dir%\*.%orig_ext%") do (28 set "filepath=%%f"29 ren "%%f" "%%~nf.%new_ext%"30 )31)32
33echo All matching files have been renamed.34pause
2. Ejecutar el archivo por lotes
Haga doble clic en el archivo rename_extension.bat
y siga las indicaciones para ingresar la información requerida. Esto permitirá renombrar en masa las extensiones de archivos en el directorio especificado.
Implementación con script de Shell
Vamos a crear un script de Shell (.sh) que guiará al usuario paso a paso para renombrar en masa las extensiones de archivos.
1. Crear el script de Shell
Cree un archivo llamado rename_extension.sh
y copie el siguiente contenido en él:
1#!/bin/bash2
3# Step 1: Prompt user for the directory4read -p "Please enter the directory you want to modify: " dir5
6# Step 2: Ask if user wants to include subdirectories7read -p "Do you want to include all subdirectories? (y/n): " include_subdirs8
9# Step 3: Prompt user for the original and new file extensions10read -p "Enter the original file extension (without dot): " orig_ext11read -p "Enter the new file extension (without dot): " new_ext12
13# Step 4: Perform the renaming operation14if [ "$include_subdirs" = "y" ] || [ "$include_subdirs" = "Y" ]; then15 # Include subdirectories16 find "$dir" -type f -name "*.$orig_ext" -exec bash -c 'mv "$0" "${0%.*}.'$new_ext'"' {} \;17else18 # Do not include subdirectories19 find "$dir" -maxdepth 1 -type f -name "*.$orig_ext" -exec bash -c 'mv "$0" "${0%.*}.'$new_ext'"' {} \;20fi21
22echo "All matching files have been renamed."
2. Otorgar permisos de ejecución al script
Ejecute el siguiente comando en la terminal para otorgar permisos de ejecución al script:
1chmod +x rename_extension.sh
3. Ejecutar el script de Shell
Ejecute el siguiente comando en la terminal y siga las indicaciones para ingresar la información requerida. Esto permitirá renombrar en masa las extensiones de archivos en el directorio especificado:
1./rename_extension.sh
Conclusión
Este artículo explica cómo usar un archivo por lotes (.bat) y un script de Shell para renombrar extensiones de archivos en masa, proporcionando pasos detallados e indicaciones para la interacción del usuario. Con estos scripts, podemos modificar fácilmente las extensiones de archivos en masa, mejorando la eficiencia del trabajo.