Windowsのコマンドプロンプトからフォントをインストールすることはできますか?はいの場合、コマンドは何ですか?
私は試した copy [fontname].ttf C:\Windows\Fonts\
そして、コピーは完了したと言っていましたが、フォントはFontsフォルダーで見つけることができず、どのプログラムのフォントリストでも見つけることができなかったため、確実に機能しませんでした。 (私はだった後でFontsフォルダからそのフォントを削除できましたが)
可能ですが、そのためにはWindowsシェルスクリプトを記述する必要があります。コピーだけではフォントはインストールされません。たとえば、フォントを登録する必要もあります。
copy "FontName.ttf" "%WINDIR%\Fonts"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "FontName (TrueType)" /t REG_SZ /d FontName.ttf /f
または、ニーズに合わせて次のコード行を使用できます。 .vbsファイルとして保存し、実行します。
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("<Folder or Share Location>")
Set objFolderItem = objFolder.ParseName("<TTF File Name>")
objFolderItem.InvokeVerb("Install")
例:
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Windows\Font")
Set objFolderItem = objFolder.ParseName("Myriad Pro.ttf")
objFolderItem.InvokeVerb("Install")
さらにもう1つの方法は、現在のユーザーセッション用に「一時的」にフォントをインストールすることです。フォントごとにfontview.exe
を実行して、他のWindowsアプリケーションで使用できるようにするというアイデアです。
for /F "delims=;" %%a in ('dir C:\ExtraFonts /B /A-D-H-S /S') do fontview %%a
完全なソリューションをご覧ください こちら 。
Powershellでは、これは次のように簡単です。
$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir fonts/*.ttf | %{ $fonts.CopyHere($_.fullname) }
GeneQのソリューションと同様に、スクリプトのディレクトリにあるすべての.ttfファイルに対してこれを実行するバージョンを次に示します。
Set ofso = CreateObject("Scripting.FileSystemObject")
SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set oSource = objShell.Namespace(SourceFolder)
Set oWinFonts = objShell.Namespace(FONTS)
' Lame VBscript needs 4 f*ing lines instead of "if (/\.ttf$/i) " ...
Set rxTTF = New RegExp
rxTTF.IgnoreCase = True
rxTTF.Pattern = "\.ttf$"
FOR EACH FontFile IN oSource.Items()
IF rxTTF.Test(FontFile.Path) THEN
oWinFonts.CopyHere FontFile.Path
END IF
NEXT
FontReg ユーティリティを使用して、コマンドプロンプトからフォントをインストールすることもできます。
私の場合はInstallFonts.vbsというスクリプトファイルを作成し、C:\PortableApps\InstallFonts\
以下のコードで、「SomeUser」を、フォントをインストールできるようにするユーザーのユーザー名に置き換えます。次に、適切な「フォントのインストール」フォルダをデスクトップに作成します。
Set ofso = CreateObject("Scripting.FileSystemObject")
'SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)
SourceFolder = "C:\Users\SomeUser\Desktop\Install Fonts"
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set oSource = objShell.Namespace(SourceFolder)
Set oWinFonts = objShell.Namespace(FONTS)
' Lame VBscript needs 4 f*ing lines instead of "if (/\.ttf$/i) " ...
Set rxTTF = New RegExp
rxTTF.IgnoreCase = True
rxTTF.Pattern = "\.ttf$"
FOR EACH FontFile IN oSource.Items()
IF rxTTF.Test(FontFile.Path) THEN
oWinFonts.CopyHere FontFile.Path
END IF
NEXT
次のようなショートカットをデスクトップに作成します...
C:\Windows\System32\runas.exe /user:Administrator /savecred "wscript C:\PortableApps\InstallFonts\InstallFonts.vbs"
「管理者」を使用したことに注意してください。これを有効にして、パスワードを割り当てました。これには、任意の管理者アカウントを使用できると思います。初めてショートカットを実行すると、管理者パスワードの入力を求められます。毎回それはちょうどうまくいきます。
パスワードの入力を求められない場合は、cmdプロンプトからショートカットを実行してプロンプトを表示します。
昇格されたコードを実行するためにそれを使用することができる場合のように、これがどれほど安全であるかはお約束できません。しかし、それは解決策です。
先ほどGeneQで述べたように、これがあなたの進め方です(私はテストしました)。
次のコマンドを使用します。
for /F "delims=;" %a in ('dir C:\FontsDir /B /A-D-H-S /S') do fontview
%a
C:\ FontsDirは、tffファイルが格納されているディレクトリです。 「fontview」ウィンドウが実行されると、「FontsDir」ディレクトリ内のtffファイルの数だけ開かれます。あなたは「インストール」ボタンをクリックするだけで、そこにいます!フォントがシステムにインストールされている
それが誰かを助けることを願っています