I utilize various open source fonts such as Inter, Iosevka, and Hack on my Windows 10 operating system. These fonts are frequently updated, but I don’t usually install the new versions promptly because it’s time-consuming.
Although there are some fonts available on the Windows Store that could solve this problem, currently, there aren’t many options, and none of the fonts I mentioned are available.
3 Answers
Introduction
Fonts are an essential aspect of any operating system, and they play a significant role in the overall user experience. However, keeping track of font updates and manually installing them can be a time-consuming task. This is particularly true for open source fonts that are frequently updated. In this blog post, we will discuss how to update installed fonts automatically in Windows.
Using PowerShell to Update Fonts
PowerShell is a command-line shell and scripting language that is built on the .NET Framework. It is an incredibly versatile tool that can be used to automate a wide range of tasks in Windows, including font updates. To update installed fonts using PowerShell, follow these steps:
1. Open PowerShell by pressing the Windows key + X and selecting “Windows PowerShell (Admin)” from the menu.
2. Run the following command to see a list of all installed fonts: Get-ChildItem -Path ‘C:WindowsFonts’
3. Find the font you want to update and note its file name.
4. Download the updated version of the font from the source website.
5. Rename the old font file in the Fonts folder by appending “.old” to the file name. For example, if the font file name is “OpenSans-Regular.ttf”, rename it to “OpenSans-Regular.ttf.old”.
6. Copy the new font file to the Fonts folder.
7. Open PowerShell and run the following command to install the updated font: New-Item -ItemType File -Path C:WindowsFonts -Name “OpenSans-Regular.ttf”
This process can be repeated for all the fonts you want to update. However, it can be time-consuming if you have many fonts to update.
Using a Third-Party Font Manager
Third-party font managers are software applications that allow you to manage and organize your fonts. They can also help you update installed fonts automatically. Here are some of the most popular font managers for Windows:
1. FontBase – FontBase is a free font manager that allows you to preview, organize, and manage your fonts. It supports all popular font formats, including TTF, OTF, WOFF, and WOFF2. FontBase can also help you update your fonts automatically, and it supports Google Fonts and Adobe Fonts integration.
2. NexusFont – NexusFont is a free font manager that allows you to manage and organize your fonts. It supports all popular font formats and allows you to preview your fonts before installing them. NexusFont can also help you update your fonts automatically.
3. FontExplorer X – FontExplorer X is a commercial font manager that allows you to manage and organize your fonts. It supports all popular font formats and allows you to preview your fonts before installing them. FontExplorer X can also help you update your fonts automatically, and it supports Google Fonts and Adobe Fonts integration.
Using a Font Updater
A font updater is a software application that automatically checks for updates to your installed fonts and installs them for you. Here are some of the most popular font updaters for Windows:
1. FontAgent Pro – FontAgent Pro is a commercial font updater that automatically checks for updates to your installed fonts and installs them for you. It supports all popular font formats and allows you to preview your fonts before installing them. FontAgent Pro can also help you organize your fonts and create font sets.
2. FontDoctor – FontDoctor is a commercial font updater that automatically checks for updates to your installed fonts and installs them for you. It supports all popular font formats and allows you to preview your fonts before installing them. FontDoctor can also help you diagnose and repair font problems.
3. Font Updater – Font Updater is a free font updater that automatically checks for updates to your installed fonts and installs them for you. It supports all popular font formats and is incredibly easy to use.
Using a Batch Script to Update Fonts
A batch script is a file that contains a series of commands that can be executed in sequence. You can use a batch script to update your installed fonts automatically. Here’s how:
1. Open Notepad or any other text editor.
2. Copy and paste the following commands into the text editor:
cd C:WindowsFonts
for /f “tokens=*” %%a in (‘dir /b /a-d *.ttf *.otf *.woff *.woff2’) do (
ren “%%a” “%%a.old”
)
xcopy /y /e “C:UsersUSERNAMEDownloadsFonts*.ttf” “C:WindowsFonts”
pause
3. Replace “USERNAME” with your Windows username.
4. Save the file with the “.bat” extension.
5. Double-click the batch file to execute it.
This script will rename all installed fonts with a “.old” suffix and copy the new font files from the specified folder to the Fonts folder. You can modify the script to suit your specific needs.
Conclusion
Updating installed fonts in Windows can be a time-consuming task, especially for open source fonts that are frequently updated. However, there are several ways to automate this process, including using PowerShell, third-party font managers, font updaters, and batch scripts. Choose the method that works best for you and enjoy the benefits of always having the latest version of your favorite fonts.
There are several ways you can update the fonts on your Windows 10 system:
- Use a font manager: There are several font managers available for Windows that can help you easily install and update fonts. Some popular font managers include FontBase, FontForge, and FontXplorer. These tools allow you to view all the fonts installed on your system, preview them, and easily install or update fonts from various sources.
- Use the Windows Store: As you mentioned, some fonts are available on the Windows Store, and these fonts can be automatically updated by the store. To see which fonts are available on the store, open the store and search for “fonts”. You can then install and update these fonts just like any other app.
- Manually update fonts: If you have downloaded the font files (.ttf or .otf) from the internet, you can manually update the fonts by replacing the old font files with the new ones. To do this, follow these steps:
- Close any program that might be using the font.
- Navigate to the folder where the font is installed (e.g., C:\Windows\Fonts).
- Delete the old font file.
- Copy the new font file to the font folder.
- Right-click the new font file and select “Install”.
- Use a script: If you have multiple fonts that you want to update regularly, you can use a script to automate the process. For example, you can use a batch script to copy the new font files to the font folder and install them automatically. This can save you time and effort if you have many fonts to update.
In conclusion, there are several ways you can update the fonts on your Windows 10 system, including using a font manager, using the Windows Store, manually updating the fonts, or using a script. The method you choose will depend on your needs and preferences. If you have a small number of fonts to update, you can do it manually or use the Windows Store. If you have many fonts to update, or if you want to automate the process, a font manager or a script might be a better option.
I created a PowerShell script that is straightforward. Its purpose is not to install fonts but to locate the most recent version, download the corresponding file, and extract it. This script resolved approximately 80% of the issue I was facing.
Below is a simple version of the script that downloads the latest updates of the Iosevka and Inter fonts:
$fonts = @(
@("Iosevka", "be5invis"),
@("Inter", "rsms")
)
foreach ($font in $fonts)
{
$apiUrl = "https://api.github.com/repos/" + $font[1] + "/" + $font[0] + "/releases/latest"
$json = Invoke-WebRequest $apiUrl
$o = ConvertFrom-Json $json
$downloadUrl = $o.assets[0].browser_download_url
$filename = $downloadUrl.Substring($downloadUrl.LastIndexOf('/') + 1)
$localFilename = (Resolve-Path ".").Path + '\' + $filename
if (Test-Path $localFilename)
{
"File $filename already exists! Skipping."
} else {
"Downloading $filename..."
$progressPreference = 'silentlyContinue'
$webResponse = Invoke-WebRequest $downloadUrl -UseBasicParsing
$progressPreference = 'continue'
[System.IO.File]::WriteAllBytes($localFilename, $webResponse.Content)
"Expanding $filename..."
Expand-Archive -LiteralPath $localFilename -DestinationPath $font[0] -Force
}
}