Instalar automáticamente en Windows 8.1 todas las fuentes contenidas en una carpeta

Publicado por P. Ruiz en

Imagina que has dedicado horas y horas a buscar por Internet tus fuentes preferidas y, un buen día, necesitas reinstalar tu sistema operativo, o te cambiar de ordenador.

En el mejor de los casos, habrás sido cauto y tendrás una copia, perfectamente ordenada en algún medio de almacenamiento externo. Aún así, para instalarlas tendrás que ir haciendo doble clic en cada uno de los archivos e instalarlos de forma individual y, cuando son muchas, te aseguro que puede ser un verdadero suplicio.

Este ha sido el caso al que me he enfrentado este fin de semana, pero pensé que que debía existir una solución más sencilla… Y la encontré desempolvando lo que sabía de la creación de scripts para la Línea de comandos de Windows (los famosos archivos .bat).

Si quieres ver cómo lo solucioné, sólo tienes que seguir leyendo…

La idea es crear el script en la carpeta donde se encuentran las fuentes. Este script deberá buscar en la carpeta, y en todas sus subcarpetas, los archivos con que tengan extensión .otf o .ttf. Cada archivo que vaya encontrando lo irá instalando en el sistema.

Lo primero será abrir el explorador de archivos y desplazarnos hasta el lugar donde se encuentren las fuentes que quiero instalar.

1

En mi caso, tengo una carpeta llamada Fuentes, donde se encuentran todas las fuentes (algunas de ellas organizadas en carpetas)

Para crear el script, sólo tenemos que hacer clic con el botón derecho del ratón sobre cualquier espacio libre del área de trabajo de la ventana.

2

En el menú de contexto que aparece, elegimos Nuevo y a continuación Documento de Texto.

Esto hará que aparezca un nuevo archivo, con el nombre provisional Nuevo documento de texto.txt. Como el nombre aparece en modo edición, sólo tenemos que comenzar a escribir el que nosotros queramos asignarle.

Lo único importante es que la extensión del archivo sea .bat, para que el sistema operativo entienda que se trata de un archivo de comandos (un script).

3

En mi caso, lo llamaré instalarfuentes.bat

De forma predeterminada, Windows oculta las extensiones de sus archivos y, cuando creamos uno nuevo sólo veremos el nombre, Nuevo documento de texto, (sin la extensión). De esa forma, al cambiarlo por instalarfuentes.bat, en realidad no hemos cambiado la extensión (que estaba oculta), por lo que el nombre final del archivo será instalarfuentes.bat.txt

Como el nombre del archivo no termina en .bat, sino en .txt, el sistema operativo no entiende que en su interior hay un script.

En realidad, la solución es muy sencilla, y ya la explicamos hace unos días en el artículo Conseguir que Windows 8.1 muestre las extensiones. No olvides seguir sus indicaciones antes de poner en práctica el presente artículo.

Como la extensión es la forma que tiene Windows de identificar el tipo de contenido de un archivo, al detectar que la estamos cambiando, nos avisa de que puede que, en adelante, no podamos hacer doble clic sobre el archivo para abrirlo.

4

En nuestro caso, esto no es motivo de preocupación, por lo que haremos clic sobre Si.

Después de esto, ya tenemos nuestro script, aunque nos servirá de poco, porque de momento está vacío. Para darle contenido, debemos comenzar por hacer clic sobre él con el botón derecho del ratón.

5

… Y en el menú de contexto que aparece, elegir Editar.

De forma predeterminada, esto hará que se abra el Bloc de notas con su área de trabajo en blanco. Llegado a este punto, sólo tienes que escribir (o copiar) el código siguiente:

@echo off
for /r %~d0%~p0 %%f in (*.?tf) do (
echo %%~nxf
xcopy "%%f" %systemroot%\fonts /y
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "%%~nf (%%~xf)" /t REG_SZ /d "%%~nxf" /f
)
echo Pulse una tecla para reiniciar el equipo
pause
shutdown -r

Básicamente, lo que hace la orden for /r es recorrer el directorio indicado, y todos los subdirectorios que encuentre en su interior. El directorio inicial viene determinado por la expresión %~d0%~p0 que, créeme, representa la ruta donde se encuentra almacenado el script.

En cada carpeta encontrada, buscará todos los archivos que atiendan a la expresión *.?tf y, para cada archivo que encuentre, efectuará las ordenes incluidas entre paréntesis.

En cada repetición del bucle, la variable %%f tendrá el nombre de un archivo, incluida la ruta completa. Si, entre el doble porcentaje (%%) y el nombre de la variable (f) añadimos ~nx, obtendremos sólo el nombre y la extensión del archivo (sin la ruta). Usando sólo ~n obtendremos únicamente el nombre (sin la extensión) y usando ~x tendremos sólo la extensión.

Una vez terminada la instalación, si no quieres reiniciar el equipo, bastará con cerrar la ventana de texto, pero en ese caso, no dispondrás de los nuevos tipos de letra hasta el próximo inicio.

Así pues, dentro del paréntesis hacemos lo siguiente:

  • La orden echo %%~nxf muestra en pantalla el archivo que estamos instalando en cada momento.
  • La orden xcopy «%%f» %systemroot%\fonts /y copia el archivo, usando la ruta completa, dentro de la carpeta donde Windows guarda sus fuentes (%systemroot% es una variable del sistema que contiene el directorio donde se encuentra instalado Windows, normalmente, en c:\windows).
  • Por último la orden REG ADD «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts» /v «%%~nf (%%~xf)» /t REG_SZ /d «%%~nxf» /f añade al registro la fuente recién incorporada.

Cuando termine la ejecución de la orden for /r, ya tendremos todas las fuentes incorporadas en el sistema. Sólo quedará avisar al usuario de que es necesario reiniciar el sistema y esperar a que pulse una tecla (con la orden pause).

La orden que efectúa el reinicio es shutdown -r.

6

Una vez que termines de escribir (o copiar) el contenido del script, puedes cerrar la ventana.

Si no has grabado antes, aparecerá un mensaje preguntando si queremos guardar los cambios.

7

Lógicamente, hacemos clic sobre el botón Guardar.

Llegados a este momento, ya estamos listos para probar el invento. No obstante, como vamos a copiar archivos en las carpetas del sistema operativo, necesitaremos privilegios de Administrador. Por lo tanto, de nuevo hacemos clic con el botón derecho del ratón sobre el nombre del script

8

Pero ahora, en el menú de contexto, elegimos la opción Ejecutar como administrador.

Al detectar la ejecución de un programa con privilegios de Administrador, el sistema operativo nos avisa de que pueden hacerse cambios en la configuración del sistema.

9

Como esto es, precisamente, lo que pretendemos, hacemos clic sobre el botón .

A partir de aquí, se abrirá una ventana de texto donde muestran los resultados del proceso. Probablemente no tendrás tiempo de leer nada, pero cuando acabe, podrás utilizar la barra de desplazamiento de la ventana para subir y comprobar cómo ha ido la tarea.

10

Cuando estemos listos para reiniciar, pulsamos una tecla cualquiera.

Al detectar la ejecución de la orden shutdown, Windows nos avisa de que se va a cerrar la sesión y nos ofrece un minuto por si tenemos algún archivo abierto que necesitemos grabar.

11

Hacemos clic sobre el botón Cerrar para cerrar el aviso.

Si quieres que el reinicio se efectúe de forma inmediata, basta con usar en el script la siguiente sintaxis: shutdown -r -t 0.

Como es de esperar, cuando pase el tiempo indicado, se producirá el reinicio.

12

Nos limitamos a esperar un momento.

Por último, podemos comprobar si todo ha funcionado correctamente abriendo nuestro procesador de textos favorito y seleccionando la fuente.

13

Aquí vemos una de las fuentes que acabamos de instalar.

One more thing…

Para terminar, te recuerdo que antes de seguir los pasos indicados aquí, deberás poner en práctica el artículo Conseguir que Windows 8.1 muestre las extensiones.

Espero que te haya resultado útil.