我正在尝试编写一个脚本,自动并静默地将一堆字体移动到字体特殊文件夹中,以便它们可用,就像您从资源管理器中"安装"它们一样(通过拖放,复制或右键单击并选择安装).我把这Shell.Application部分一直放到副本上.
$FONTS = 0x14
$shell = New-Object -ComObject Shell.Application
$source = $shell.Namespace($downloaded_path)
$target = $shell.Namespace($FONTS)
$target.CopyHere($source.Items())
Run Code Online (Sandbox Code Playgroud)
但是,某些系统可能已经安装了字体,我希望隐藏进度对话框并静默接受任何提示.

所以,我正在研究Folder.CopyHere选项标志.
4 不显示进度对话框16 对于显示的任何对话框,回答"是全部".我希望它们在此文件夹中受支持(某些选项在设计中被忽略).我认为这些是十进制的,对吧?他们需要转换吗?但是我传递它们,我仍然看到两个对话框.我试过了
$options = 4 <-- don't expect int to work
$options = 0x4 <-- thought hexidecimal would be ok, the VB documentation shows &H4&
$options = "4" <-- string's the thing?
$options = [byte]4 <-- no luck with bytes
$options = [variant]4 <-- this isn't even a type accelerator!
Run Code Online (Sandbox Code Playgroud)
而且,如果我可以选择一个选项,我如何让它们都工作?我bor在一起吗?格式化怎么样?
$options = 4 -bor 16
Run Code Online (Sandbox Code Playgroud)
或者我添加它们或将它们转换为十六进制?
$options = "{0:X}" -f (4 + 16)
Run Code Online (Sandbox Code Playgroud)
选项Folder.CopyHere标志可能根本不起作用。这让我很难过。我将不得不研究其中一种其他方法,所有这些方法都让我陷入了困境。
在新进程中调用副本并使用ProcessStartInfo属性隐藏窗口。我还没有实现这个,但我想知道它是否会解决用户提示覆盖现有文件的问题?
Dim iProcess As New System.Diagnostics.ProcessStartInfo(AppDomain.CurrentDomain.BaseDirectory + \xe2\x80\x9cunzip.exe\xe2\x80\x9d)\n\niProcess.CreateNoWindow = True\nDim sArgs As String = ZippedFile\niProcess.Arguments = sArgs\niProcess.WindowStyle = ProcessWindowStyle.Hidden\nDim p As New System.Diagnostics.Process\niProcess.UseShellExecute = False\np = System.Diagnostics.Process.Start(iProcess)\np.WaitForExit(30000)\nDim s As Integer = p.ExitCode\niProcess.UseShellExecute = True\n\np.Dispose()\niProcess = Nothing\nRun Code Online (Sandbox Code Playgroud)\n\n仅复制不存在的项目。当我实际上想用同名的新字体文件更新现有字体时,这似乎会失败。
\n\nforeach($File in $Fontdir) {\n $fontName = $File.Name.Replace(".ttf", " Regular")\n $objFolderItem = $objFolder.ParseName($fontName);\n if (!$objFolderItem) {\n $objFolder.CopyHere($File.fullname,0x14)\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我正在考虑删除与我正在复制的字体同名的所有字体,然后复制该集。虽然这有点残酷。而且我相信如果该字体因为正在使用而无法删除,还会有另一个提示。叹
\n| 归档时间: |
|
| 查看次数: |
17093 次 |
| 最近记录: |