将文件复制到另一个文件夹并使用 vbscript 根据创建日期重命名它们 [英] copying files to another folder and renaming them based on the creation date using vbscript

查看:25
本文介绍了将文件复制到另一个文件夹并使用 vbscript 根据创建日期重命名它们的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 vbscript 和编程还很陌生!正如我在标题中已经提到的,我已经编写了(或者至少我已经尝试过)一个 vbscript,它应该将 C:\test\ 中的所有文件以及 C:\test\ 的子文件夹复制并重命名为另一个文件夹,名为 C:\test1.

I'm fairly new to vbscript and programming! As I've already mentioned in the title, I've written (or at least I've tried) a vbscript which should copy and rename all files in C:\test\ and the subfolders of C:\test\ to a another Folder, named C:\test1.

这是我到目前为止所得到的:

Here's what I've got so far:

Dim objStartFolder, objtargetFolder, objDateCreatedName
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\test"
objtargetFolder = "C:\test1"

Set objFolder = objFSO.GetFolder(objStartFolder)
WScript.Echo objFolder.Path
Set colFiles = objFolder.Files
For Each objFile In colFiles
    WScript.Echo objFile.Name
Next
WScript.Echo

ShowSubFolders objFSO.GetFolder(objStartFolder)

Sub ShowSubFolders(Folder)
    For Each Subfolder In Folder.SubFolders
        WScript.Echo Subfolder.Path
        Set objFolder = objFSO.GetFolder(Subfolder.Path)
        Set colFiles = objFolder.Files
        For Each objFile In colFiles
        Set objDateCreatedName = objFSO.GetFile(objStartFolder)
        WScript.Echo objDateCreatedName.DateCreated
        WScript.Echo "I'm going to copy " & objFolder.Path & objFile.Name & " to " & objtargetFolder & objtargetFolder & objFile.Name & "." 
    Next
    WScript.Echo
    ShowSubFolders Subfolder
Next
End Sub

如果您能帮助我,那真是太好了,如果您需要更多信息,我会确保提供.

It would be really nice if you could help me and if you need more Information I'll make sure to deliver them.

推荐答案

如果每个文件都应该放在同一个目标文件夹中,您可以简单地执行以下操作:

If every file should go into the same destination folder you could simply do something like this:

Set fso = CreateObject("Scripting.FileSystemObject")

Function Pad(s)
  Pad = Right("00" & s, 2)
End Function

Sub CopyFiles(fldr, dst)
  'Copy all files from fldr to destination folder and append the date (in ISO
  'format) to the name. Overwrite existing files.
  For Each f In fldr.Files
    created = Year(f.DateCreated) & "-" & Pad(Month(f.DateCreated)) & "-" & _
              Pad(Day(f.DateCreated))
    newname = fso.GetBaseName(f) & "_" & created & "." & fso.GetExtensionName(f)
    f.Copy fso.BuildPath(dst, newname), True
  Next

  'Recurse into subfolders.
  For Each sf In fldr.SubFolders
    CopyFiles sf, dst
  Next
End Sub

CopyFiles fso.GetFolder("C:\test"), "C:\test1"

这篇关于将文件复制到另一个文件夹并使用 vbscript 根据创建日期重命名它们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆