更改Folder的DateLastModified属性以匹配其中的文件

时间:2019-06-29 03:13:34

标签: vbscript

我有许多文件夹,每个文件夹中都有文件。

结构看起来像这样:

Folder.No.1
Folder_No_2
Folder No 3

和其中的文件类似:

Folder.No.1\My.Movie.1.mp4
Folder.No.1\My.Movie.1.txt

Folder_No_2\My_Movie_2.mp4
Folder_No_2\My_Movie_2.jpg
Folder_No_2\My_Movie_2.txt

Folder No 3\My Movie 3.mp4

如您所见,一些文件夹的名称中包含.,一些文件夹包含_,另一些包含空格。

一个一致的因素是,每个文件夹都会始终包含一个.mp4文件,而不管其他任何内容。

因此,如何更改文件夹的Date Modified日期/时间以使其与文件夹中包含的.avi文件的日期/时间匹配?是否可以通过使用VBScript将DateLastModified从(子级)内部文件复制到父级文件夹来实现?

到目前为止,我正在从事类似的工作:

Dim objShell, objFolder, objFile

    Set objFile = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.NameSpace(strDir)

    Set strDir = objFile.GetFolder("C:\Temp")

For Each objFile In objFolder
    If UCase(objFolder.GetExtensionName(objFile.Name)) = "MP4" Then

    objFolder.Items.Item(strDir).ModifyDate = DateLastModified
        WScript.Echo objFolder.Name
    End If       
Next

但是在从命令行使用cscript CopyDateToParent.vbs

调用时失败

任何人都可以帮助纠正它以使其正常工作吗?

1 个答案:

答案 0 :(得分:0)

尝试我的代码:

StrFolder="C:\Users\admin\Desktop\" 'Your folder

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objFSO.GetFolder(StrFolder)
Set Folder = objShell.NameSpace(StrFolder)
Set colFiles = objFolder.Files

For Each objFile in colFiles
Name=objFile.Name
strExtension = LCase(objFSO.GetExtensionName(Name))
    If strExtension = "mp4" Then
     Set objFolderItem = Folder.ParseName(Name)
     objFolderItem.ModifyDate = DateLastModified 'Example : "01/01/2008 8:00:00 AM"
    End If
Next