我有许多文件夹,每个文件夹中都有文件。
结构看起来像这样:
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
任何人都可以帮助纠正它以使其正常工作吗?
答案 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