从文件列表中抓取文件名,如果文件大小超过1MB,请复制

时间:2017-05-21 18:21:40

标签: vbscript

我的一位经理在工作中已经完成了以下任务:

我们有一个包含所有服装款式和颜色的图像数据库。对于每种类型的服装和每种颜色,我们有3个图像。其中2张是低分辨率图像,其中1张是高分辨率图像。

我们需要将每个样式和颜色的高分辨率图像从由子文件夹组成的旧数据库复制到一个文件夹中,因此忽略了文件夹结构。

我遇到过这个Visual Basic脚本,它非常接近我的需要但需要一些调整,因为我对VB脚本并不熟悉,我希望能在SO处获得一些帮助。

我需要调整脚本的内容是: - 从列表中读取图像名称的脚本(filelist.txt)(如果可能的话,不需要将每个图像的路径添加到列表中,只是名称和扩展名为.jpg) - 如果大小超过1MB,脚本只需要抓取图像。 - 从子文件夹复制图像而不保留文件夹结构的脚本。

任何和所有的帮助将不胜感激,调整背后的解释和任何指导也将是友好的,但不是必需的。

这是我到目前为止的脚本。当我在玩剧本时,路径是暂时的。

Option Explicit

' The source path for the copy operation.
Const strSourceFolder = "C:\Users\Cou Rou\Desktop\Old database"

' The target path for the copy operation.
Const strTargetFolder = "C:\Users\Cou Rou\Desktop\New database"

' The list of files to copy. Should be a text file with one file on each row. No paths - just file name.
Const strFileList = "C:\Users\Cou Rou\Desktop\Old database\filelist.txt"

' Should files be overwriten if they already exist? TRUE or FALSE.
Const blnOverwrite = FALSE

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Const ForReading = 1
Dim objFileList
Set objFileList = objFSO.OpenTextFile(strFileList, ForReading, False)

Dim strFileToCopy, strSourceFilePath, strTargetFilePath
On Error Resume Next
Do Until objFileList.AtEndOfStream
    ' Read next line from file list and build filepaths
    strFileToCopy = objFileList.Readline
    strSourceFilePath = objFSO.BuildPath(strSourceFolder, strFileToCopy)
    strTargetFilePath = objFSO.BuildPath(strTargetFolder, strFileToCopy)

    ' Copy file to specified target folder.
    Err.Clear
    objFSO.CopyFile strSourceFilePath, strTargetFilePath, blnOverwrite
    If Err.Number = 0 Then
        ' File copied successfully
    Else
        ' Error copying file
        Wscript.Echo "Error " & Err.Number & " (" & Err.Description & "). Copying " & strFileToCopy
    End If
Loop

0 个答案:

没有答案