【问题标题】:Change DateLastModified property of Folder to match file within更改文件夹的 DateLastModified 属性以匹配其中的文件
【发布时间】:2019-11-10 21:07:26
【问题描述】:

我有很多文件夹,每个文件夹里面都有文件。

结构看起来像这样:

文件夹.No.1 文件夹_No_2 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

任何人都可以帮助更正此问题以使其正常工作吗?

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    试试我的代码:

    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
    

    【讨论】:

      猜你喜欢
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      相关资源
      最近更新 更多