web-dev-qa-db-ja.com

Windowsコマンドプロンプトからフォントをインストールするにはどうすればよいですか?

Windowsのコマンドプロンプトからフォントをインストールすることはできますか?はいの場合、コマンドは何ですか?

私は試した copy [fontname].ttf C:\Windows\Fonts\そして、コピーは完了したと言っていましたが、フォントはFontsフォルダーで見つけることができず、どのプログラムのフォントリストでも見つけることができなかったため、確実に機能しませんでした。 (私はだった後でFontsフォルダからそのフォントを削除できましたが)

38
Mussnoon

可能ですが、そのためには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

完全なソリューションをご覧ください こちら

31
GeneQ

Powershellでは、これは次のように簡単です。

$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir fonts/*.ttf | %{ $fonts.CopyHere($_.fullname) }
16
Guss

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
6
mivk

FontReg ユーティリティを使用して、コマンドプロンプトからフォントをインストールすることもできます。

3
afrazier

私の場合は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プロンプトからショートカットを実行してプロンプトを表示します。

昇格されたコードを実行するためにそれを使用することができる場合のように、これがどれほど安全であるかはお約束できません。しかし、それは解決策です。

2
Desktop Masters

先ほどGeneQで述べたように、これがあなたの進め方です(私はテストしました)。

  1. 管理者権限でコマンドラインを開く
  2. 次のコマンドを使用します。

    for /F "delims=;" %a in ('dir C:\FontsDir /B /A-D-H-S /S') do fontview
    %a
    

C:\ FontsDirは、tffファイルが格納されているディレクトリです。 「fontview」ウィンドウが実行されると、「FontsDir」ディレクトリ内のtffファイルの数だけ開かれます。あなたは「インストール」ボタンをクリックするだけで、そこにいます!フォントがシステムにインストールされている

それが誰かを助けることを願っています

0
Sam Doxy