[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[技术讨论] 批量安装字体的VBS脚本Folder.CopyHere 方法中的参数问题

现有批量安装字体的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$"
  10. FOR EACH FontFile IN oSource.Items()
  11.     IF rxTTF.Test(FontFile.Path) THEN  
  12.         oWinFonts.CopyHere FontFile.Path[color=Red],256[/color]
  13.     END IF
  14. NEXT
复制代码
测试在未安装对应字体的电脑上使用正常
但如果已安装对应字体则会弹出是否覆盖的确定窗口,手动一个个点击确认太麻烦了
查了一下微软相关的方法调用:https://docs.microsoft.com/ja-jp ... ell/folder-copyhere
发现我添加的参数都未正常生效  想请教一下 是这个可选参数只能在特定环境下生效还是我的脚本错误导致这种情况

  1. oWinFonts.CopyHere FontFile.Path,16+256
复制代码
微信:flashercs
QQ:49908356

TOP

回复 2# flashercs
貌似没啥效果,win10 x64测试。
想添加直接发送enter键 居然也不生效。
  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|ttc|otf$"
  10. ' rxTTF.Pattern = "\.otf$"
  11. set WshShell = CreateObject("WScript.Shell")
  12. FOR EACH FontFile IN oSource.Items()
  13.     IF rxTTF.Test(FontFile.Path) THEN
  14. WScript.Sleep 800
  15.         oWinFonts.CopyHere FontFile.Path,16+256
  16. WScript.Sleep 800
  17. WshShell.AppActivate "安装字体"
  18. WshShell.SendKeys "{ENTER}"
  19.     END IF
  20. WScript.Sleep 800
  21. WshShell.AppActivate "安装字体"
  22. WshShell.SendKeys "{ENTER}"
  23. NEXT
复制代码

TOP

回复 3# holley


    以管理员身份运行vbs可以发送按键
微信:flashercs
QQ:49908356

TOP

返回列表