【问题标题】:Setting a file's "Last modified Date" | Touch a file (Noob-request)设置文件的“最后修改日期”|触摸文件(菜鸟请求)
【发布时间】:2017-02-16 02:38:36
【问题描述】:

我需要一些对小代码-sn-p 的快速支持。 我想“触摸”一个文件,或者说更改“上次修改日期”。

我有以下代码-sn-p:

Touch "C:\temp\VBS", "test.txt", "1/01/2006 11:00:00 PM"

Function Touch(strDir, strFileName, DateTime)

Dim objShell, objFolder

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(strDir)
objFolder.Items.Item(strFileName).ModifyDate = DateTime

End Function

它可以工作,但我不想将文件夹和文件分别传递给函数。 (“C:\temp\VBS”和“test.txt”) 我想传递一个 FQDN 或“全名”。 ("C:\temp\VBS\test.txt")

我通过 Google 找到的所有示例都使用了这种拆分技术,我无法自己编写 VB ...

谢谢

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    分裂显然是由 .NameSpace 和 .Item 的不同参数引起的。给定完整的文件规范,您可以使用 FileSystemObject 的 .GetParentFolderName 和 .GetFileName 方法:

    Option Explicit
    
    Dim goFS   : Set goFS = CreateObject("Scripting.FileSystemObject")
    Dim sFSpec : sFSpec = WScript.ScriptFullName
    WScript.Echo "Path", goFS.GetParentFolderName(sFSpec)
    WScript.Echo "Name", goFS.GetFileName(sFSpec)
    

    输出:

    e:\work\proj\soa\42225862
    cscript 42254081.vbs
    Path e:\work\proj\soa\42225862
    Name 42254081.vbs
    

    【讨论】:

    • 我想我已经根据你的回答让它工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2020-05-12
    • 2019-02-26
    • 2011-11-25
    相关资源
    最近更新 更多