无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 10422|回复: 21

[求助] 批量安装字体的VBS脚本Folder.CopyHere 方法中的参数问题

[复制链接]
发表于 2021-12-16 13:11:19 | 显示全部楼层 |阅读模式
本帖最后由 holley2008 于 2021-12-17 10:26 编辑

现有批量安装字体的VBS脚本
  1. Set ofso = CreateObject("Scripting.FileSystemObject")
  2. SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)
  3. Const FONTS = &H14&
  4. Set objShell  = CreateObject("Shell.Application")
  5. Set oSource   = objShell.Namespace(SourceFolder)
  6. Set oWinFonts = objShell.Namespace(FONTS)
  7. Set rxTTF = New RegExp
  8. rxTTF.IgnoreCase = True
  9. rxTTF.Pattern = "\.ttf[        DISCUZ_CODE_0        ]quot;
  10. FOR EACH FontFile IN oSource.Items()
  11.     IF rxTTF.Test(FontFile.Path) THEN  
  12.         oWinFonts.CopyHere FontFile.Path,<font color="#ff0000">256</font>
  13.     END IF
  14. NEXT
复制代码
测试在未安装对应字体的电脑上使用正常
但如果已安装对应字体则会弹出是否覆盖的确定窗口,手动一个个点击确认太麻烦了
查了一下微软相关的方法调用:https://docs.microsoft.com/ja-jp ... ell/folder-copyhere
发现我添加的参数都未正常生效  想请教一下 是这个可选参数只能在特定环境下生效还是我的脚本错误导致这种情况


另意外发现win10 64字体文件夹里面存在:‪C:\Users\Administrator\AppData\Local\Microsoft\Windows\Fonts和常规的C:\Windows\Fonts
vbs正常复制文件用的是FileSystemObject 但操作字体居然没生效。。操作存疑?
 楼主| 发表于 2021-12-16 17:06:54 | 显示全部楼层
bfgxp 发表于 2021-12-16 15:42
那就再写个脚本来点覆盖的对话框

测试了一下 管理员方式 发送enter或esc不生效啊
回复

使用道具 举报

 楼主| 发表于 2021-12-16 20:19:31 | 显示全部楼层
9zhmke 发表于 2021-12-16 18:48
先检测是否有这个字体,没有字体再安装,例:

多谢指点,,我这边win10 64 测试了一下tmp1、tmp2获取正常。tmp3一直为46 导致还是会重复安装并弹出已安装提示。

点评

出现这个重复提示是因为字体名未统一,如果已安装的和未安装的是同一文件名的字体应该不会出现这个情况,其实通过检测系统已安装字体是能判断已安装字体的,但还需要对未安装的字体是什么字体进行对比,这个可能要再  详情 回复 发表于 2021-12-19 11:20
回复

使用道具 举报

 楼主| 发表于 2021-12-17 09:25:04 | 显示全部楼层
chishingchan 发表于 2021-12-17 09:23
安装字体不是直接拷贝文件到FONTS目录就行了吗?

win10以后的好像在脚本上用这招没啥用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-1-20 14:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表