Как установить шрифт из командной строки Windows?
можно ли установить шрифты из командной строки в Windows? Если да, то какая команда?
пробовал copy [fontname].ttf C:WindowsFonts и он сказал, что копирование было завершено, но я не мог ни найти указанные шрифты в папке Fonts, ни найти их в списке шрифтов любой программы, так что, конечно, не работает. (Хотя Я был возможность удалить указанные шрифты из папки Fonts впоследствии)
8 ответов
это возможно, но для этого вам нужно написать сценарий оболочки Windows. Копирование само по себе не установит шрифт: вам также нужно зарегистрировать шрифт, например
в качестве альтернативы вы можете следующие строки кода в соответствии с вашими потребностями; сохраните его как .VBS-файл, а затем выполнить его.
еще одна альтернатива — установить шрифты «временные», только для текущей сессии пользователя. Идея состоит в том, чтобы запустить fontview.exe для каждого шрифта, что делает его доступным для других приложений Windows:
Посмотреть полное решение здесь.
в Powershell это может быть так просто, как:
аналогичное решение GeneQ, вот версия для всех .ttf файлы в каталоге скрипта:
вы также можете использовать FontReg утилита для установки шрифтов из командной строки.
создайте файл сценария с именем InstallFonts.vbs в моем случае я положил его в C:\PortableApps\InstallFonts\ В приведенном ниже коде замените «SomeUser» на имя пользователя, которому вы хотите установить шрифты. Затем создайте соответствующую папку «install Fonts»на рабочем столе.
теперь создать ярлык на рабочем столе, который выглядит следующим образом.
обратите внимание, что я использовал «администратор». Я включил его и назначил ему пароль. Я полагаю, вы могли бы использовать любая учетная запись администратора. При первом запуске ярлыка вам будет предложено ввести пароль администратора.. каждый раз после него будет просто работать.
если он не запрашивает пароль, запустите ярлык из командной строки, он должен запросить вас.
Я не могу обещать вам, насколько это безопасно, если бы они могли использовать его для запуска кода с повышенными привилегиями. Однако это решение проблемы.
Windows: install fonts from cmd/.bat file
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)
8 Answers 8
maybe this is needed too:
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.
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:
Have you tried copying them to the font’s folder?
I solved the task in this way:
suppose you have to install many fonts in subfolders with the following structure recursively:
How do I install a font from the Windows command prompt?
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)
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:
Similar to GeneQ’s solution, here is a version doing it for all .ttf files in the script’s directory:
You can also use the FontReg utility to install fonts from a command prompt.
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.
heldr / addfont.cmd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Great script! The only problem is that it doesn’t work for font files with spaces in them. I have altered line 19 to fix it.
FOR /F «tokens=» %%i in (‘dir /b «%SRC%.*tf»‘) DO CALL :FONT «%%i»
Seems to work well. Still doesn’t work with characters such as «&» but I’ve just renamed those files as a workaround.