Recuperar espacio en disco en Windows

Windows almacena mucha información de uso y de copias de seguridad que rara vez utilizamos. Siempre es bueno contar con un respaldo en caso de que algo falle, pero con el paso del tiempo el consumo de espacio en disco se hace excesivo y es entonces cuando podemos aplicar una limpieza.

La herramienta que Windows provee para ello es el Liberador de espacio en disco, el cual podemos lanzar desde Inicio > Ejecutar… escribiendo:

cleanmgr

Entre las opciones que provee, las que más consumen espacio son

  • Archivos temporales de Internet
    • utilizados por Internet Explorer
  • Papelera de reciclaje
    • Todo lo que vamos borrando
  • Archivos de copia de seguridad del Service Pack
    • generados a partir de una actualización del sistema con un Service Pack
  • Archivos temporales
    • generados por instalación y uso de diferentes aplicaciones
  • Archivos de Informes de error de Windows
    • Registros de errores que en algún caso podrían asistir a diagnóstico de problema

Ninguna de ellas es esencial para el uso del sistema y se pueden recuperar valiosos bytes para otras tareas.

Anuncios

Atajo para acceder a todas las tareas del Panel de Control en Windows

En las diferentes versiones de Windows a partir de Windows 7, existe la posibilidad de acceder a una carpeta especial que contiene todas las tareas que normalmente están disponibles navegando el Panel de Control, o haciendo una búsqueda dentro del mismo.

A esta carpeta se la conoce como Todas las tareas, o en inglés, All tasks y puede accederse desde Inicio > Ejecutar… (Win + R) escribiendo:

shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

Alternativamente, si fuera necesario tenerla siempre disponible, se puede crear una carpeta con el nombre que uno quiera y a continuación del mismo agregar “.{ED7BA470-8E54-465E-825C-99712043E01C}”. Por ejemplo:

All tasks.{ED7BA470-8E54-465E-825C-99712043E01C}

Al confirmar la acción, solo quedará visible el nombre indicado y el icono de la carpeta será reemplazado por el icono del Panel de Control.

Basado en:

Ejecutar procesos indicando la prioridad en Windows

Al lanzar un proceso desde la línea de comandos, uno puede indicar su prioridad:

start <prioridad> <comando>

donde <prioridad> es alguno de los siguientes valores:

  • /REALTIME: Tiempo real
  • /HIGH: Alta
  • /ABOVENORMAL: Por encima de lo normal
  • /NORMAL: Normal 😉
  • /BELOWNORMAL: Por debajo de lo normal
  • /LOW: Baja

Ejemplo

start /high /b backup.bat

Se ejecuta el archivo batch con la prioridad alta, sin crear una nueva ventana (/b)

Una vez que el proceso está en ejecución, aún se puede Cambiar la prioridad de un proceso en Windows.

También te puede interesar:

Ejecutar procesos indicando la prioridad en Linux

Atajo para acceder a las Propiedades del sistema en Windows 7

Cada tanto tengo que acceder a las Propiedades del sistema en Windows. Agregar Variables de entorno es lo más común y en algunos casos mas remotos, configurar la posibilidad de Restaurar sistema o la configuración de Escritorio remoto.

Siempre sigo los mismos pasos:

  1. Acceder a “Sistema”
    • Sobre el icono de Equipo en el escritorio, presionar el botón derecho y elegir Propiedades.
      • Se puede hacer lo mismo sobre el vínculo Equipo dentro del menú Inicio
    • Acceder a Panel de Control > Sistema desde el menú Inicio
    • Abrir Equipo y en los comandos en la barra superior elegir “Propiedades del sistema” (*)
    • Presionar Tecla Win + Pausa
  2. Presionar sobre “Configuración avanzada del sistema” a la izquierda.

(*) Lo cual es raro porque accede a “Sistema”… Si elegimos “Propiedades” entre los comandos, se presentan las propiedades de la unidad de disco seleccionada dentro del Equipo.

El atajo para acceder de manera inmediata es:

Presionar Win + R (Ejecutar…) y escribir “sysdm.cpl

Establecer una dirección IP fija en Windows

Cuando un equipo no tiene una dirección IP fija, necesita que otro dispositivo le asigne una automáticamente / dinámicamente. De esta tarea se encarga el servicio DHCP que puede estar provisto por un servidor dedicado o por un router por ejemplo.

Hay casos en los que necesitamos definirle una dirección IP en particular al equipo, ya sea por organización o para configurar alguna otra aplicación o servicio que así lo requiera. Si bien DHCP se puede configurar para asignar cierta IP del rango disponible a una dirección MAC determinada, requiere saber obtener la dirección MAC de la placa de red de un equipo y tener acceso a la configuración del servicio DHCP.

A continuación voy a explicar cómo hacerlo para una dirección IPv4 (es muy similar para IPv6, y en un futuro será necesario hacerlo).

En Windows 7, debemos llegar hasta las Propiedades de la conexión correspondiente al dispositivo de red (placa de red con conexión Ethernet o Wifi). Una de las formas para lograrlo:

  1. Abrir el Panel de Control
  2. Acceder a Centro de Redes y Recursos Compartidos
  3. Elegir “Cambiar configuración del adaptador” en la lista de comandos de la izquierda

También podemos ir a Inicio > Ejecutar… y escribir:

ncpa.cpl

Una vez allí veremos las conexiones existentes y deberemos determinar cual es la que queremos configurar. Sobre ella:

  1. Click derecho y elegir Propiedades
  2. Posicionarse sobre “Protocolo de Internet versión 4”
  3. Presionar “Propiedades”
  4. Elegir la opción “Usar la siguiente dirección IP”
  5. Completar:
    • Dirección IP y Máscara de subred: esta es la dirección fija para el equipo
      • No podemos poner “cualquier” valor. De lo contrario, nuestro equipo podría quedar inaccesible al resto de los dispositivos de la red.
    • Puerta de enlace predeterminada: por lo general es la dirección IP del router de la LAN
  6. Completar también el Servidor DNS preferido: por lo general es la dirección IP del router de la LAN
    • Alternativamente, pueden usarse los DNS de Google: 8.8.8.8 y 8.8.4.4

Procesar varios archivos por línea de comandos en Windows

Para aplicar un cierto acción a varios archivos desde la línea de comandos de Windows existe la instrucción forfiles.

En Windows 7, la invocación tiene los siguientes parámetros (todos son opcionales):

  • /P <PATH>: ruta sobre la cual buscar los archivos
    • Si no se especifica, se considera el directorio actual
  • /S: se procesan los subdirectorios del path recursivamente
  • /M <PATRON>: patrón de los archivos a considerar, pudiendo indicar nombre y extensión. Por ej: *.log
    • Si no se especifica, se considera *
  • /D  { [+] | – }{ dd/mm/aaaa | N }: selecciona archivos a partir de la fecha de última modificación de cada uno.
    • Si no se especifica el signo -, se considera por defecto +
    • -dd/mm/aaaa: fecha de última modificación anterior o igual a dd/mm/aaaa
    • +dd/mm/aaaa: fecha de última modificación posterior o igual a dd/mm/aaaa
    • -N: fecha de última modificación anterior o igual a la fecha actual menos N días
    • +N: fecha de última modificación posterior o igual a la fecha actual más N días
  • /C “<COMANDO>”: indica la acción a ejecutar sobre cada uno de los archivos que hayan sido seleccionados
    • Si no se especifica, se considera “cmd /c echo @file”
    • Si se desea utilizar un comando de CMD, deben estar precedidos por “cmd /c”
    • Variables disponibles en <COMANDO>
      • @file: nombre del archivo
      • @fname: nombre de archivo sin extensión
      • @ext: extensión del archivo
      • @path: ruta de acceso completa al archivo
      • @relpath: ruta de acceso relativa del archivo
      • @isdir: “TRUE” si es un directorio y “FALSE” si es un archivo
      • @fsize: tamaño del archivo en bytes
      • @fdate: última fecha de modificación del archivo
      • @ftime: última hora de modificación del archivo

 

Ejemplos:

forfiles /P C:\logs /D -20 /C "cmd /c del @path"

Borra los archivos del directorio logs de más 20 días desde su última fecha de modificación

forfiles /C "cmd /c if @isdir==TRUE echo @file"

Imprime por pantalla los directorios que se encuentren en la ruta actual

forfiles /P C:\Documents\ /S /M *.xlsx /C "cmd /c echo @fname - @fdate"

Muestra el nombre y fecha de última modificación de cada uno de los archivos de Excel dentro del directorio de documentos (y subdirectorios)

Respaldar preferencias y datos de la sesión de Firefox en Windows

Me sucede cada cierto tiempo que debido a un reinicio espontáneo del equipo, un corte de luz o un cuelgue de Firefox, se pieden o bien las preferencias del navegador o bien los datos de la sesión: principalmente las pestañas abiertas y los grupos de pestañas!

Como me gusta Firefox y quiero seguir usándolo, busqué la forma de respaldar esta información y poder recuperarla en caso de fallo. A continuación les presento el contenido del script para realizar esta tarea (tomando como base un script de respaldo en Windows), el cual pueden programar para que se ejecute por ejemplo en cada inicio de sesión en Windows.

Obs: Debemos conocer la ubicación del perfil de Firefox para poder avanzar.

Estructura del script

@echo off
for /f "tokens=1-3 delims=/- " %%a in ('date /t') do set FECHA=%%c%%b%%a
for /f "tokens=1-2 delims=: " %%a in ('time /t') do set HORA=%%a%%b

copy <PATH_FIREFOX_PROFILE>\sessionstore.js <PATH_BACKUP>\sessionstore-%FECHA%-%HORA%.bak
copy <PATH_FIREFOX_PROFILE>\pref.js <PATH_BACKUP>\sessionstore-%FECHA%-%HORA%.bak

Entonces tendremos en PATH_BACKUP una copia de los archivos sessionstore.js (datos de la sesión) y pref.js (preferencias) del perfil de Firefox, renombrados con extensión bak y con la fecha y hora en que se copiaron.

Para no tener que ir cada cierto tiempo a eliminar las copias viejas, podemos hacer que el script lo haga automáticamente borrando los archivos .bak de más de N días desde su última modificación, agregando al final:

forfiles /P <PATH_BACKUP> /M *.bak /D -<N> /C "cmd /c del @path"

Donde N indica la cantidad de días previos a la fecha actual, lo cual determina una fecha tope. Se seleccionan los archivos cuya fecha de última modificación sea menor o igual a esa fecha tope.

Atención: Si el script no se ejecuta por mucho tiempo es posible que eliminemos las únicas copias de las que disponemos!

Ejemplo:

@echo off
for /f "tokens=1-3 delims=/- " %%a in ('date /t') do set FECHA=%%c%%b%%a
for /f "tokens=1-2 delims=: " %%a in ('time /t') do set HORA=%%a%%b

copy C:\Profiles\Firefox\q7v2je1d.default\sessionstore.js <PATH_BACKUP>\sessionstore-%FECHA%-%HORA%.bak
copy C:\Profiles\Firefox\q7v2je1d.default\pref.js D:\firefox_backups\sessionstore-%FECHA%-%HORA%.bak

forfiles /p D:\firefox_backups\ /M *.bak /D -90 /C "cmd /c del @path"

De esta forma cada vez que se ejecute el script estaremos respaldando las preferencias e información de la sesión de Firefox y automáticamente borrando los archivos copiados de más de 90 días (cada par ocupa menos de 350 Kb.)