Bat файл установка шрифта
Is it possible to install fonts from the command prompt on Windows? If yes, what is the command?
I tried copy [fontname].ttf C:\Windows\Fonts\ and it said copying was complete, but I could neither find the said fonts in the Fonts folder nor find them in the font list of any program so that certainly didn't work. (Although I was able to delete the said fonts from the Fonts folder afterwards)
Hi @Mussnoon I'm also facing this issue of fonts not getting installed. Wanted to check if you were able to install the fonts from command line. Thanks.
13 Answers 13
It's possible but you have to write a Windows shell script to do that. Copying alone won't install the font: you also need to register the font, e.g.
Alternatively you can the following lines of code to suit your needs; save it as a .vbs file and then execute it.
Yet another alternative is to install fonts "temporary", just for current user session. The idea is to run fontview.exe for each font, which makes it available for other Windows applications:
See the complete solution here.
In Powershell this can be as simple as:
Granted, Get-ChildItem is the Powershell way, I just hate the Powershell way (Unix shell affectionado here), and dir is just an alias for that; and if you want recursion, then the options you provided are the way to go. For the simple "just scan the files in this folder", my version is less verbose and more readable.
Similar to GeneQ's solution, here is a version doing it for all .ttf files in the script's directory:
You just saved my day :) My default Windows font got corrupted and this was the only way I could reinstall all Windows Default fonts. Thanks!!
perfect! I used this in a vbs run by a bat file for a number of computers after a company re-brand. It installs the fonts, installs the email signature files for Outlook and sets the browser home page
You can also use the FontReg utility to install fonts from a command prompt.
@djangofan: Were you using an elevated command prompt? I haven't tried fontreg on Windows 10 yet, but I'd expect that to be required.
The problem was I was trying to install Mac fonts on my system (they don't have filename extensions). I got the windows .ttf font files and its all good now.
Create a script file called InstallFonts.vbs in my case I put it in C:\PortableApps\InstallFonts\ IN the below code replace "SomeUser" with the username of the person you want to be able to install fonts. Then make the Appropriate "install Fonts" folder on their desktop.
Now create a shortcut on their desktop that is as follows.
Note that I used "Administrator". I enabled it and assigned it a password. I suppose you could use any administrator account for this. First time you run the shortcut you will be prompted for the administrator password. Every time after it will just work.
If it does not prompt you for a password run the shortcut from a cmd prompt it should prompt you then.
I cannot promise you how secure this is as in if they could use it to run elevated code. However it is a solution.
anyone know how to install font files (.ttf, .TTF, .otf, .OTF, etc etc) through the command prompt on windows?
as i understand it, it requires moving the text file to the correct folder and then also creating a registry value i think? but I havent been able to find one that is confirmed working.
a note: I am using windows 8 so that might make a difference.
another note: what I am trying to do is batch install fonts that I ripped from MKV files. (so this will be a function that is part of a larger .bat file, i can post the code if needed)
There's no way to do it wuthout a third party tools (at least an additional DLL/EXE file). While you can manually add a font via file copy and modifying registry, the system won't still be aware of the new font and will need a system restart.
8 Answers 8
maybe this is needed too:
Copying to "%SYSTEMROOT%\Fonts" plus this worked with Windows 10. No PowerShell needed. Just run these commands with admin permissions.
You'll need to use a PowerShell or VB script. They basically re-use the shell components that do the same thing in Windows Explorer, and they don't need a reboot.
Also, you'll need to run the script in admin mode. So if the PowerShell script is InstallFonts.ps1, your batch file needs to look like:
Any powershell errors will appear in 'err.out' on the same folder as the script.
@Twonky I've updated my answer to include a link to a PS script that also sets the registry key for the font. This is needed for Windows 10 or Windows Server 2019.
When you install a font all it does is copy the .ttf file to %systemroot%\fonts and add an entry in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts . This can be automated with a batch file as follows
The font.reg would contain the following:
So a colleague and I found a powershell solution that requires no admin rights, and does not show any prompts. You can use the name of the font-file to install and uninstall. This makes it especially useful for scripting.
You can use them like this from cmd or powershell:
Thanks for this! This is very useful especially when you're want to install Font from CI/CD script. Good work!
You should know that AddFontResource is not installing the font but registering it for usage during the session which means font is not present anymore after reboot. In some cases this is desired but not in all cases. Installed fonts need to be in a special system folder (Windows/Fonts or in user fonts folder) and have a registry key in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts (or the user equivalent)
Have you tried copying them to the font's folder?
if you are a python fan, following script does the job. This script generates a vbscript for font installation. Searches all the sub-folders for ttf fonts and installs it. You don't need to move any font files.
Run this python script on the root folder
That code might be not enough. The Windows Shell verb string is dependent on localized version of the Windows.
Batch file sample. It works in the current directory.
I solved the task in this way:
suppose you have to install many fonts in subfolders with the following structure recursively:
To do that, I downloaded the FontReg.exe tool on my Desktop (change the path in the Install_fonts.cmd file if it is located somewhere else) and I used it in a Install_fonts.cmd batch script like the following, located in root_folder (change also its name in the Install_fonts.cmd file, if different):
So, you have to run Install_fonts.cmd into root_folder as administrator, to automate the fonts installation process.
Кто-нибудь знает, как установить файлы шрифтов (.ttf, .TTF, .otf, .OTF и т. д. и т. д.) через командную строку в Windows?
Насколько я понимаю, для этого требуется переместить текстовый файл в нужную папку, а затем также создать значение реестра, я думаю? но я не смог найти тот, который подтвердил работу.
Примечание: я использую Windows 8, так что это может иметь значение.
Еще одно примечание: то, что я пытаюсь сделать, это пакетная установка шрифтов, которые я скопировал из файлов MKV. (так что это будет функция, которая является частью большего файла .bat, я могу опубликовать код, если это необходимо)
Без сторонних инструментов (как минимум дополнительного DLL/EXE-файла) это сделать невозможно. Хотя вы можете добавить шрифт вручную, скопировав файл и изменив реестр, система все равно не будет знать о новом шрифте и потребует перезагрузки системы.
Может это тоже нужно:
Копирование в «%SYSTEMROOT%\Fonts» плюс это работало с Windows 10. PowerShell не требовался. Просто запустите эти команды с правами администратора.
Вам нужно будет использовать сценарий PowerShell или VB. В основном они повторно используют компоненты оболочки, которые делают то же самое в проводнике Windows, и им не требуется перезагрузка.
Кроме того, вам нужно будет запустить скрипт в режиме администратора. Итак, если сценарий PowerShell — InstallFonts.ps1, ваш пакетный файл должен выглядеть так:
Любые ошибки PowerShell будут отображаться в «err.out» в той же папке, что и скрипт.
Я обновил свой ответ, включив в него ссылку на сценарий PS, который также устанавливает раздел реестра для шрифта. Это необходимо для Windows 10 или Windows Server 2019.
Когда вы устанавливаете шрифт, все, что он делает, это копирует файл .ttf в %systemroot%\fonts и добавляет запись в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts . Это можно автоматизировать с помощью командного файла следующим образом.
Файл font.reg будет содержать следующее:
Вы пробовали копировать их в папку со шрифтом?
Итак, мы с коллегой нашли решение powershell, которое не требует прав администратора и не показывает никаких подсказок. Вы можете использовать имя файла шрифта для установки и удаления. Это делает его особенно полезным для сценариев.
Вы можете использовать их следующим образом из cmd или powershell:
Спасибо за это! Это очень полезно, особенно если вы хотите установить шрифт из сценария CI/CD. Хорошая работа!
Если вы поклонник python, следующий скрипт выполнит эту работу. Этот скрипт генерирует vbscript для установки шрифта. Ищет во всех подпапках шрифты ttf и устанавливает их. Вам не нужно перемещать какие-либо файлы шрифтов.
Запустите этот скрипт Python в корневой папке
Этого кода может быть недостаточно. Строка команды Windows Shell зависит от локализованной версии Windows.
Пример пакетного файла. Он работает в текущем каталоге.
Я решил задачу так:
Предположим, вам нужно рекурсивно установить много шрифтов в подпапки со следующей структурой:
Для этого я скачал инструмент FontReg.exe на мой Рабочий стол (измените path в файле Install_fonts.cmd , если он находится в другом месте), и я использовал его в пакетном сценарии Install_fonts.cmd , подобном следующему, расположенному в root_folder (измените также его имя в файле Install_fonts.cmd , если оно отличается):
Итак, вам нужно запустить Install_fonts.cmd в root_folder от имени администратора, чтобы автоматизировать процесс установки шрифтов.
Можно ли установить шрифты из командной строки в Windows? Если да, то какая команда?
Я попытался, copy [fontname].ttf C:\Windows\Fonts\ и он сказал, что копирование завершено, но я не смог ни найти указанные шрифты в папке Fonts, ни найти их в списке шрифтов какой-либо программы, так что это точно не сработало. (Хотя я был в состоянии удалить указанные шрифты из шрифтов папки впоследствии)
Это возможно, но для этого нужно написать сценарий оболочки Windows. Копирование само по себе не приведет к установке шрифта: вам также необходимо зарегистрировать шрифт, например:
В качестве альтернативы вы можете использовать следующие строки кода в соответствии с вашими потребностями; сохраните его как файл .vbs и затем выполните его.
Еще одна альтернатива - установить шрифты «временно», просто для текущего сеанса пользователя. Идея состоит в том, чтобы запустить fontview.exe для каждого шрифта, что делает его доступным для других приложений Windows:
Смотрите полное решение здесь .
В Powershell это может быть так просто:
Конечно, Get-ChildItem это способ Powershell, я просто ненавижу способ Powershell (здесь речь идет о оболочке Unix), и dir это просто псевдоним для этого; и если вы хотите рекурсию, то варианты, которые вы предоставили, - путь. Для простого «просто отсканируйте файлы в этой папке» моя версия менее многословна и более читабельна.
Аналогично решению GeneQ, вот версия, которая делает это для всех файлов .ttf в каталоге скрипта:
Вы только что сохранили мой день :) Мой шрифт Windows по умолчанию поврежден, и это был единственный способ переустановить все шрифты Windows по умолчанию. Благодарность!!
идеальный! Я использовал это в VBS, управляемом файлом bat для нескольких компьютеров после ребрендинга компании. Он устанавливает шрифты, устанавливает файлы подписи электронной почты для Outlook и устанавливает домашнюю страницу браузера
Вы также можете использовать утилиту FontReg для установки шрифтов из командной строки.
@djangofan: Вы использовали командную строку с повышенными правами? Я еще не пробовал fontreg на Windows 10, но я ожидаю, что это потребуется.
Проблема заключалась в том, что я пытался установить шрифты Mac в моей системе (у них нет расширений имени файла). Я получил файлы шрифтов Windows .TTF, и теперь все хорошо.
Создайте файл сценария с именем InstallFonts.vbs. В моем случае я поместил его в C: \ PortableApps \ InstallFonts \ IN. В приведенном ниже коде замените «SomeUser» именем пользователя, которому вы хотите установить шрифты. Затем создайте соответствующую папку «Install Fonts» на своем рабочем столе.
Теперь создайте ярлык на рабочем столе, который выглядит следующим образом .
Обратите внимание, что я использовал «Администратор». Я включил его и назначил пароль. Я полагаю, вы можете использовать любую учетную запись администратора для этого. При первом запуске ярлыка вам будет предложено ввести пароль администратора .. каждый раз после того, как он будет работать.
Если он не запрашивает пароль, запустите ярлык из командной строки cmd.
Я не могу пообещать вам, насколько это безопасно, если бы они могли использовать его для запуска повышенного кода. Однако это решение.
В линуксе можно просто скопировать все шрифты в папку .fonts, а как на винде установить мне сразу 100 шрифтов?
Простой 1 комментарий
В виндовсе можно просто скопировать все шрифты в папку C:\ Windows\ Fonts , а как на линуксе установить мне сразу 100 шрифтов?
Туда папка не копируттся. Мне что надо теперь зайти в каждую папку со шрифтом отдельно и скопировать их поотдельности? Это что за безобразие такое. 7
было всегда
.. а еще всегда были команды copy, xcopy и подобные, со всякими ключиками, которые можно почитать запросив /? или даже загуглить для комфортного чтения..
.. а еще можно разных файловых менеджерах типа Far, сделать что то вроде выбора всех *.ttf из подпапок текущей папки, поместить в панель результат выбора и скопировать в папку другой панели..
.. и так далее, и так далее..
А можно прям из проводника находясь в нужной папке набрать в поиске *.ttf и он отобразит все файлы с нужным расширением из всех подпапок.
И выделить их можно нажав Ctrl-A
И даже скопировать куда надо.
Кроме правой кнопки мыши для "создания" "значка на рабочем столе", в Windows есть множественный выбор файлов левая кнопка мышь с Ctrl (выбирать по одному) или с Shift (выбирать от одного до другого). А затем опять правая кнопка мыши и "установить". Ой, а ещё есть магическая (потому-что есть везде) Ctrl + A — выбрать все.
Читайте также: