0

我想运行一个批处理脚本,以递归方式将过去 24 小时内的新文件名或修改后的文件名输出到文本文档。请指教!

4

2 回答 2

1

您可以编写一个 vbscript 文件来执行此操作。

使用文件系统对象获取文件信息。然后检查datecreateddatelastmodified值是否小于一天,通过检查返回的值减去now是否小于 1。然后使用此处的代码将文件名写入文本文件,如果它们是新的或新修改的。

代码:

Dim objFS, objOutput, objFolder, objFile, objTS, strListFilePath, strFolderToCheck

strListFilePath = "C:\NewFilesList.txt" ' or whatever
strFolderToCheck = "C:\" ' or whatever
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(strFolderToCheck)
objFS.CreateTextFile strListFilePath
Set objOutput = objFS.GetFile(strListFilePath)
Set objTS = objOutput.OpenAsTextStream(2, -2) 'This means open for writing and use the default tristate value
CheckFolder(objFolder)
objTS.Close

Set objFS = Nothing
Set outFolder = Nothing
Set objOutput = Nothing
Set objTS = Nothing

Sub CheckFolder(objThisFolder)

    Dim objSubFolder
    for each objSubFolder in objThisFolder.SubFolders
        CheckFolder(objSubFolder)
    next
    for each objFile in objThisFolder.Files
        if (Now - objFile.DateCreated & vbCrLf < 1) or (Now - objFile.DateLastModified < 1) then
            'Less than 24hrs old
            objTS.WriteLine(objFile.path)
        end if
    next    
End Sub
于 2013-04-29T16:53:36.107 回答
1

这应该提供一个列表 - c:\aaa 不存在并且应该存在。将 c:\files 更改为您的源文件夹并更改日期以适合。

xcopy /s/h/e/k/f/c/l /d:04-28-2013 "c:\files" c:\aaa\  >file.txt
于 2013-04-29T17:05:58.223 回答