Vbscript 将最大的文件比较/复制到新文件夹
我想做的是:Vbscript 将最大的文件比较/复制到新文件夹,vbscript,Vbscript,我想做的是: 将文件从单个主文件夹下的多个子文件夹复制到目标文件夹 复制时有三个选项: 如果目标文件夹中不存在文件,请复制 若文件存在,若文件大小大于目标文件,则复制 如果文件存在并且两个文件大小相同,则比较日期/时间,如果是最近的,则复制 以下是我目前为止的伪代码: Dim filesys, strSourceFile, strDestFolder, strDestFile Set filesys = CreateObject("Scripting.FileSystemObject") s
Dim filesys, strSourceFile, strDestFolder, strDestFile
Set filesys = CreateObject("Scripting.FileSystemObject")
strSourceFile = S:\SoCal\Section_2\*\Autogen\texture\*.agn
strDestFolder = F:\ADDON_SCENERY\simwestSOCAL\texture
strDestFile = F:\ADDON_SCENERY\simwestSOCAL\texture\*.agn
COPY each file in strSourceFolder
If IsEmpty (SourceFile, DestFolder)
Else If (SourceFile FileSize > DestFile)
Else If (SourceFile DateTime > DestFile DateTime)
Then 'keep/copy most recent file
End if
我走对了吗?
我需要添加一个循环吗?
可以比较文件大小吗?我所有的研究都没有在这方面发现任何东西。
我可以将日期和时间与文件进行比较吗
作为对我原来帖子的更新。。。(希望我正确遵守论坛规则)
在过去的几周里,我一直在不停地阅读和测试失败测试。我很高兴地说(也有点骄傲),我已经完成了我的第一个剧本。。。它似乎按计划工作,但只针对一个文件。我现在需要将其转换为处理“sourcefolder”中的所有文件
我有点“脑死亡”,所以任何方向的转换这将是最感激的。我知道我需要循环,但是什么类型,在哪里?我是否将引用文件的所有内容重命名为文件夹或使用“*.txt”作为文件?在此期间,我将继续学习
这是我的脚本(是的,有很多MsgBox,所以我可以沿着脚本路径进行操作):
dim-dFolder
dFolder=“S:\Scripting Workfolder\destfolder\”
暗文件
dFile=“S:\Scripting Workfolder\destfolder\File 1.txt”
暗文件
sFile=“S:\Scripting Workfolder\sourcefolder\File 1.txt”
设置fso=CreateObject(“Scripting.FileSystemObject”)
'检查目标文件夹中是否已存在该文件
如果不存在fso.FileExists(dFile),则
MsgBox“文件不存在-将复制到dFolder”
fso.CopyFile sFile,dFolder,true
Elseif fso.FileExists(dFile)然后
MsgBox“目标文件夹中已存在文件”
替换大文件
如果结束
子替换放大器(sFile、dFile)
const overwrite_existing=true
dim objFSO
设置objFSO=createobject(“Scripting.FileSystemObject”)
模糊对象源文件
设置objSourceFile=objFSO.GetFile(sFile)
'暗kbSourceSize
kbSourceSize=objSourceFile.size
dim对象目标文件
设置objTargetFile=objFSO.GetFile(dFile)
'dim kbTargetSize
kbTargetSize=objTargetFile.size
如果kbSourceSize>kbTargetSize,则
MsgBox“源文件较大,将覆盖到dest文件夹”
objFSO.CopyFile objSourceFile.Path,objTargetFile.Path,覆盖现有文件
ElseIf kbSourceSizedtmTargetFile.DateLastModified),则
MsgBox“源文件比目标文件新-覆盖目标文件”
objFSO.CopyFile dtmSourceFile.Path,dtmTargetFile.Path,覆盖现有文件
其他的
MsgBox“源文件早于目标文件-不会覆盖文件”
如果结束
端接头
如有疑问,请阅读。是的,你需要一个循环。可能不止一个。您应该对当前文件夹中的每个文件执行循环,并对子文件夹使用递归子文件夹。如果有疑问,请阅读。是的,你需要一个循环。可能不止一个。您应该对当前文件夹中的每个文件执行循环,并对子文件夹使用递归子文件夹。
dim dFolder
dFolder = "S:\Scripting Workfolder\destfolder\"
dim dFile
dFile= "S:\Scripting Workfolder\destfolder\File 1.txt"
dim sFile
sFile = "S:\Scripting Workfolder\sourcefolder\File 1.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
'Check to see if the file already exists in the destination folder
If Not fso.FileExists(dFile) Then
MsgBox "File does not exist - will copy over to dFolder"
fso.CopyFile sFile, dFolder, true
Elseif fso.FileExists(dFile) Then
MsgBox "File already exist in destination folder determine largest"
ReplaceIfLarger sFile, dFile
End If
Sub ReplaceIfLarger(sFile, dFile)
const overwrite_existing = true
dim objFSO
set objFSO = createobject("Scripting.FileSystemObject")
dim objSourceFile
set objSourceFile = objFSO.GetFile(sFile)
'dim kbSourceSize
kbSourceSize = objSourceFile.size
dim objTargetFile
set objTargetFile = objFSO.GetFile (dFile)
'dim kbTargetSize
kbTargetSize = objTargetFile.size
If kbSourceSize > kbTargetSize Then
MsgBox "Source file is LARGER and will overwrite to dest folder"
objFSO.CopyFile objSourceFile.Path, objTargetFile.Path, overwrite_existing
ElseIf kbSourceSize < kbTargetSize Then
MsgBox "Source file is smaller - Will not overwrite to dest folder"
Else
ReplaceIfNewer sFile, dFile
End If
End Sub
Sub ReplaceIfNewer(sFile, dFile)
MsgBox "Both files exist and are the same size. Keep newest file"
const overwrite_existing = true
dim objFSO
set objFSO = createobject("Scripting.FileSystemObject")
dim dtmSourceFile
set dtmSourceFile = objFSO.GetFile(sFile)
dim dtmTargetFile
set dtmTargetFile = objFSO.GetFile(dFile)
If (dtmSourceFile.DateLastModified > dtmTargetFile.DateLastModified) then
MsgBox "Source File is Newer than Target File - Overwrite Target file"
objFSO.CopyFile dtmSourceFile.Path, dtmTargetFile.Path, overwrite_existing
Else
MsgBox "Source File is Older than Target File - Will not overwrite file"
End If
End Sub