CopyHere没有按预期工作

时间:2014-04-15 21:18:41

标签: vbscript

我制作了一个脚本,它应该将一堆字体复制到Windows字体文件夹中。当我运行它时,我收到了我想复制的文件名的输出,但没有复制。当我删除For循环并指定文件名时,它可以工作。任何帮助表示赞赏。

Const FONTS = &H14&
sFolder = "c:\FontInstalls\"
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.Namespace(FONTS) 
Set objFSO = CreateObject("Scripting.FileSystemObject")

For Each oFile In objFSO.GetFolder(sFolder).Files
  If UCase(objFSO.GetExtensionName(oFile.Name)) = "TTF" Then
    objFolder.CopyHere(oFile)
    wscript.echo(oFile)
  End if
Next

1 个答案:

答案 0 :(得分:1)

需要安装字体而不复制字体。复制shell的对象而不是底层文件。 shell安装复制到fonts文件夹中的字体。

这是您需要将文件添加到zip中的对象。

Set objShell = CreateObject("Shell.Application")
Set Ag=Wscript.Arguments
set WshShell = WScript.CreateObject("WScript.Shell")

Set SrcFldr=objShell.NameSpace(Ag(1))
Set DestFldr=objShell.NameSpace(Ag(0))
Set FldrItems=SrcFldr.Items
DestFldr.CopyHere FldrItems, &H214
Msgbox "Finished"