【问题标题】:Set/adjust file version of a rtf-file with VBscript使用 VBscript 设置/调整 rtf 文件的文件版本
【发布时间】:2023-03-15 10:52:01
【问题描述】:

我创建了一个登录脚本来自动为 Outlook 创建电子邮件签名。此脚本创建以下文件“C:\Users\%username%\AppData\Roaming\Microsoft\Signatures\Default_signature.rtf”

我想为这个文件添加一个版本号,这样我就可以检查是否需要更新这个文件。如果没有,退出登录脚本。否则使用更高版本号更新签名。

获取版本号很容易找到,但我找不到如何使用 VBscript 设置/更改版本号。

使用 DSOFile.OleDocumentProperties 对我不起作用。我不断收到 ActiveX 错误“无法创建对象”。可能是我必须注册 系统中的 dsofile.dll,但此代码必须适用于我们公司的每个用户,我不想在使用此登录脚本之前将其安装在每个设备上。

'Code for requesting versionnumber    
Set objFSO = CreateObject("Scripting.FileSystemObject")
    file = "C:\Users\%username%\AppData\Roaming\Microsoft\Signatures\Default_signature.rtf"
    Wscript.Echo "Version = " & objFSO.GetFileVersion(file)

我希望有人能告诉我如何做到这一点:)

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    据我所知,DSO 是微软唯一支持的在不重写文件的情况下更改文件属性的方法。有一些用于 Excel 的 VBA 脚本,但这不适用于您使用 RTF 的情况。

    但是,我可以建议一个不同的选择吗?我的基础架构中有一个脚本,该脚本在每次登录时运行并检查共享某个文件的最后修改日期。如果机器上存在的文件较旧,则将其替换为共享上的文件。

     Dim objFSO, strFileName
    
        strFileName = "C:\Users\user\Desktop\Tests\fdsfsd.rtf"
    
        Set objFSO = CreateObject( "Scripting.FileSystemObject" )
    
        WScript.Echo objFSO.GetFile( strFileName ).DateLastModified
    
        Set objFSO = Nothing
    

    【讨论】:

    • 嗨,亚历克斯,感谢您的建议。这似乎是我唯一可用的选项...
    猜你喜欢
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    相关资源
    最近更新 更多