-
PowerShell
-
Git
-
GitHub
-
VSCode
Terminal Backup
Definición del proyecto
Terminal Backup es un proyecto personal que consiste en una función de PowerShell para respaldar de forma sencilla y automatizada la configuración y los archivos de la Terminal de Windows. Su objetivo es evitar perder las preferencias personalizadas de la terminal cuando se reinstala el equipo, se cambia de máquina o se modifica accidentalmente el archivo settings.json.
Actividades realizadas
-
Diseño y desarrollo de la función
terminal-backupenPowerShell, encargada de copiar el archivo de configuración de la Terminal hacia una ruta de destino definida por el usuario. -
Definición de un sistema de organización por fecha y hora, donde cada respaldo se guarda dentro de una carpeta con el día actual y se nombra con la hora exacta de ejecución.
-
Integración de la función dentro del perfil de
PowerShell($PROFILE), permitiendo que esté disponible de forma global en cualquier sesión de la terminal. -
Validación de directorios y archivos antes de realizar el respaldo para evitar errores cuando la carpeta destino aún no existe.
-
Versionado del proyecto con
Gity publicación enGitHubpara que cualquier persona pueda instalar la función y adaptarla a sus necesidades.
Información adicional del proyecto
Pasos para agregar esta función a tu terminal:
1. Instalar PowerShell
Asegúrate de tener instalada la versión más reciente de PowerShell.
2. Abrir la configuración de tu perfil de PowerShell
Ejecuta el siguiente comando para abrir tu archivo de perfil en el Bloc de notas:
notepad $PROFILE
⚠️ Nota: Si recibes un error indicando que el archivo no existe, créalo con este comando:
New-Item -Path $PROFILE -Type File -Force
3. Agregar la función de copia de seguridad
Copia y pega la siguiente función en tu archivo de perfil abierto. No olvides modificar la variable $destination para definir la ruta donde quieres guardar las copias de seguridad.
function terminal-backup {
# config file
$file = "settings"
$ext = ".json"
# date
$date = Get-Date -Format "dd-MM-yyyy"
$h = Get-Date -Format "HH"
$m = Get-Date -Format "mm"
$s = Get-Date -Format "ss"
# origin config path
$origin = "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\$file$ext"
# destination path
$destination = "insert your path for save backup || insertar la ruta donde guardar la copia de seguridad"
# check file time exist
if (-Not (Test-Path "$destination\$date")) {
mkdir "$destination\$date"
}
# final destination
$destination_for_save_backup = "$destination\$date\${h}hr-${m}min-${s}sec$ext"
# copy file
Copy-Item $origin $destination_for_save_backup -Force
}
4. Guardar y recargar el perfil
Después de guardar los cambios en el archivo $PROFILE, recarga tu perfil para que la función quede disponible sin necesidad de reiniciar la terminal:
. $PROFILE
5. Usar la función
Ahora, cada vez que quieras hacer una copia de seguridad de tu configuración, solo ejecuta:
terminal-backup
Esto creará una carpeta con la fecha actual y guardará una copia del archivo settings.json con la hora exacta.
Resultados obtenidos
La función quedó funcional y completamente integrada en mi propio flujo de trabajo, lo que me permite ejecutar un respaldo de la configuración de la Terminal con un solo comando y mantener un historial ordenado por fecha y hora. El proyecto también me ayudó a profundizar en PowerShell y a entender mejor cómo construir pequeñas utilidades que se integran de forma transparente con el sistema operativo.
Conclusión
Como proyecto personal, Terminal Backup nació de una necesidad propia: dejar de perder mi configuración personalizada de la Terminal cada vez que reinstalaba el sistema o cambiaba de máquina. Construir y mantener esta función me reafirmó el valor de automatizar tareas pequeñas pero frecuentes, especialmente cuando se trata de proteger configuraciones que han tomado tiempo en pulirse. Es un buen ejemplo de cómo un proyecto personal pequeño puede mejorar de forma directa la experiencia diaria de trabajo.