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


37

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

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


回答:


31

可能ですが、それを行うには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")

さらに別の方法は、現在のユーザーセッションのためだけにフォントを「一時」インストールすることです。アイデアはfontview.exe、各フォントに対して実行することで、他のWindowsアプリケーションで使用できるようにします。

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

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


(1)現在のディレクトリからすべてのフォント*.ttf*.fonフォントを自動的にインストールする(2)Const FONTS = &H14&ここで提案されているとおりに使用する(sevenforums.com/general-discussion/…)。私はVBSの王ではありません:(事前に感謝します。
dma_k11年

1
objFolderItem.InvokeVerb("Install")Windows Server 2012 R2で動作しない
アンソニーコング14年

@GeneQ:copyおよびreg addWindows®の10のプログラムに記載されているフォントを作るていない
user2284570

16

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

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

3
2行目を変更しますGet-ChildItem -Recurse -include *.ttf | % { $fonts.CopyHere($_.fullname) }
EvgeniySharapov

2
確かにGet-ChildItem、Powershellの方法です。Powershellの方法は嫌いです(ここではUNIXシェルの愛情があります)dir。再帰が必要な場合は、指定したオプションを使用してください。単純な「このフォルダ内のファイルをスキャンするだけ」の場合、私のバージョンはより冗長で読みやすいです。
グス

5

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

あなたはちょうど私の日を保存しました:)私のデフォルトのWindowsフォントが破損しました、そして、これは私がすべてのWindowsのデフォルトフォントを再インストールできる唯一の方法でした。ありがとう!!
リマ

完璧!これは、会社のブランド変更後、多数のコンピューターのbatファイルによって実行されるvbsで使用しました。フォントをインストールし、Outlookのメール署名ファイルをインストールし、ブラウザーのホームページを設定します
Reece

3

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


1
これはWindows 10 64ビットでは動作しませんでした。
ジャンゴファン

1
@djangofan:昇格したコマンドプロンプトを使用していましたか?私はまだWindows 10でfontregを試したことはありませんが、それが必要になると思います。
フレイジャー

問題は、システムにMacフォントをインストールしようとしていたことです(ファイル名拡張子がありません)。Windowsの.ttfフォントファイルを入手しました。
djangofan

1

私の場合、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プロンプトからショートカットを実行してください。

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


0

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

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

/ F "delims =;"の場合 %a in( 'dir C:\ FontsDir / B / ADHS / S')do fontview%a

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

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


なぜfor(たとえば)ではなく、このような複雑なコマンドなのfor %a in (C:\FontsDir\*.*) do fontview "%a"か?
エール

このコマンドは隠しフォントも表示します
Sam Doxy

-1

Windowsのバージョンはリストしませんでしたが、Vistaまたは7を実行していると想定しています。そのディレクトリにコピーするには管理者権限が必要です。もう一度やり直してくださいが、今回は昇格したコマンドプロンプトのインスタンスを使用します


3
彼はコピーが成功したと言った。許可によって彼が正常にコピーできなかった場合、コピーが失敗したことを彼に伝えていたので、おそらくこれは問題ではありません。
ヒンクル

-1

再起動せずにフォントをインストールする方法を見つけるのに多くの時間を費やしました。最後に、これを見つけました:ClickFont。簡単で正確なソリューションです。

ClickFontを使用すると、システムのどこからでも、マウスを2回クリックするだけでTrueType、OpenType、およびPostScriptフォントを簡単にインストールできます。必要なのは、フォントまたはフォルダーを右クリックするだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.