我需要一些小代码片段的快速支持。 我想“触摸”一个文件,或者让我们改变“最后修改日期”。
我有以下代码段:
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 ...
谢谢
答案 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