从命令行获取 TTF 文件的实际字体名称

Not*_*PRO 5 windows fonts command-line cmd.exe

这似乎是一个简单的问题,如何从命令行获取字体的实际名称。

这是一个例子。字体文件名为segoesc.ttf. 但是,字体菜单中显示的实际字体名称是Segoe Script.

在此处输入图片说明

我尝试过的:

  1. 那里有一个 python 脚本,可以获取字体名称。但我不想有 Python 依赖。

  2. 右键单击 Fontfile 并转到“属性”>“详细信息”,为我提供属性列表。我尝试使用wmic但它不显示Title属性。

wmic 数据文件 "c:\Windows\fonts\segoesc.ttf" 获取标题

谢谢。

Jas*_*son 5

在 PowerShell 中:

(New-Object -TypeName Windows.Media.GlyphTypeface -ArgumentList 'C:\Windows\Fonts\segoesc.ttf').Win32FamilyNames.Values
Run Code Online (Sandbox Code Playgroud)

退货 Segoe Script

感谢Samuel Leslie 和PSWinGlue

  • 请记住先加载程序集:`Add-Type -AssemblyNamePresentationCore`。 (6认同)

Lot*_*ngs 1

每种能够处理 COM 对象的(脚本)语言 (J-/vbscript/PowerShell) 都可以使用 Shell.Application 获取扩展文件属性

\n\n

此 PowerShell 脚本列出了字体文件的典型扩展属性

\n\n
$path        = 'A:\\segoescb.ttf'\n$folder      = Split-Path $path\n$file        = Split-Path $path -Leaf\n\n$shell       = New-Object -COMObject Shell.Application\n$shellfolder = $shell.Namespace($folder)\n$shellfile   = $shellfolder.ParseName($file)\n\n## get (localized) description and value of \n##   specified extended attributes numbers\n## (0,2,21,165,166,195) \n\n(0,1,2,3,4,5,6,9,10,19,21,25,33,34,58,62,165,166,167,170,191,192,193,195,197,203,255)| \nForeach-Object { \n    '{0,3} {1,-30} = {2}' -f $_,\n            $shellfolder.GetDetailsOf($null, $_), \n            $shellfolder.GetDetailsOf($shellfile, $_) \n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

示例(德语)输出:

\n\n
  0 Name                           = segoescb.ttf\n  1 Gr\xc3\xb6\xc3\x9fe                          = 567 KB\n  2 Elementtyp                     = IrfanView TTF File\n  3 \xc3\x84nderungsdatum                 = 2018-04-12 01:34\n  4 Erstelldatum                   = 2019-05-07 15:46\n  5 Letzter Zugriff                = 2019-05-07 15:46\n  6 Attribute                      = AC\n  9 Erkannter Typ                  = Nicht angegeben\n 10 Besitzer                       = xxxxxxxx\\LotPings\n 19 Bewertung                      = Nicht bewertet\n 21 Titel                          = Segoe Script Bold\n 25 Copyright                      = \xc2\xa9 2016 Microsoft Corporation. All Rights Reserved.\n 33 Firma                          = Microsoft Corporation\n 34 Dateibeschreibung              =\n 58 Gesamtgr\xc3\xb6\xc3\x9fe                    = 0,99 GB\n 62 Computer                       = xxxxxxxx (dieser PC)\n165 Dateierweiterung               = .ttf\n166 Dateiname                      = segoescb.ttf\n167 Dateiversion                   = 5.02\n170 Freier Speicherplatz           = 998 MB\n191 Ordnername                     = A:\\\n192 Ordnerpfad                     = A:\\\n193 Ordner                         = A:\\\n195 Pfad                           = A:\\segoescb.ttf\n197 Typ                            = IrfanView TTF File\n203 Verkn\xc3\xbcpfungsstatus             = Nicht aufgel\xc3\xb6st\n255 Verwendeter Speicherplatz      = \xe2\x80\x8e2%\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以绝对最小值是 0 或 166 和 21。

\n