设置文件的“上次修改日期”|触摸文件(Noob-request)

时间:2017-02-15 15:53:34

标签: vbscript

我需要一些小代码片段的快速支持。 我想“触摸”一个文件,或者让我们改变“最后修改日期”。

我有以下代码段:

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 ...

谢谢

1 个答案:

答案 0 :(得分:2)

分裂显然是由.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