查找名称中包含 "Arial" 的所有字体
Find All Fonts with "Arial" in their Name
下面的代码找到字体 "Arial",但我想找到标题中所有的 Arial 字体(所以 "Arial Rounded"、"Arial Unicode" 等)。我应该可以使用通配符吧?我一定不知道它去了哪里。有人可以帮我回显其中包含 "Arial" 的所有字体吗?
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(FONTS)
Set objFolderItem = objFolder.Self
Set colItems = objFolder.Items
For Each objItem In colItems
If objItem = "Arial" Then
Wscript.Echo objItem.Name
End If
Next
你几乎已经掌握了。您只需要检查项目的名称是否包含(子)字符串 "Arial":
For Each objItem in colItems
If InStr(LCase(objItem.Name), "arial") > 0 Then
WScript.Echo objItem.Name
End If
Next
名字小写是为了比较case-insensitive.
(有点笨拙)InStr
比较的替代方法是使用正则表达式测试项目名称:
Set re = New RegExp
re.Pattern = "arial"
re.IgnoreCase = True
For Each objItem in colItems
If re.Test(objItem.Name) Then
WScript.Echo objItem.Name
End If
Next
下面的代码找到字体 "Arial",但我想找到标题中所有的 Arial 字体(所以 "Arial Rounded"、"Arial Unicode" 等)。我应该可以使用通配符吧?我一定不知道它去了哪里。有人可以帮我回显其中包含 "Arial" 的所有字体吗?
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(FONTS)
Set objFolderItem = objFolder.Self
Set colItems = objFolder.Items
For Each objItem In colItems
If objItem = "Arial" Then
Wscript.Echo objItem.Name
End If
Next
你几乎已经掌握了。您只需要检查项目的名称是否包含(子)字符串 "Arial":
For Each objItem in colItems
If InStr(LCase(objItem.Name), "arial") > 0 Then
WScript.Echo objItem.Name
End If
Next
名字小写是为了比较case-insensitive.
(有点笨拙)InStr
比较的替代方法是使用正则表达式测试项目名称:
Set re = New RegExp
re.Pattern = "arial"
re.IgnoreCase = True
For Each objItem in colItems
If re.Test(objItem.Name) Then
WScript.Echo objItem.Name
End If
Next