Vbscript 使用vbs复制和重命名最旧的文件

Vbscript 使用vbs复制和重命名最旧的文件,vbscript,Vbscript,大家好 我一直在深入研究.vb和.vbs。我有一个关于复制文件后重命名文件的小问题。从(只给予信用,信用到期:p)的人,我发现了如何将文件复制到另一个文件夹,但我似乎无法重命名该文件 所以我想复制文件并将原始文件重命名为execute.HMS 这是用于复制的代码: Set objFSo = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder("F:\commandfo

大家好

我一直在深入研究.vb和.vbs。我有一个关于复制文件后重命名文件的小问题。从(只给予信用,信用到期:p)的人,我发现了如何将文件复制到另一个文件夹,但我似乎无法重命名该文件

所以我想复制文件并将原始文件重命名为execute.HMS

这是用于复制的代码:

Set objFSo = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("F:\commandfolder")

Set colFiles = objFolder.Files

dtmOldestDate = Now
 
For Each objFile in colFiles
    If objFile.DateCreated < dtmOldestDate Then
        dtmOldestDate = objFile.DateCreated
        strOldestFile = objFile.Path
    End If
Next

objFSO.CopyFile strOldestFile, "F:\commandfolder\Processed\"
Set objFSo=CreateObject(“Scripting.FileSystemObject”)
设置objFolder=objFSO.GetFolder(“F:\commandfolder”)
设置colFiles=objFolder.Files
dtmOldestDate=Now
对于colFiles中的每个objFile
如果objFile.DateCreated
提前感谢并致以亲切的问候

Dave

基于,我使用
文件的方法添加了移动文件的代码:

Const csSrcF=“..\testdata\17806396”
Const csDstF=“..\testdata\17806396\dst\”
Dim goFS:Set goFS=CreateObject(“Scripting.FileSystemObject”)
Dim oLstPng:设置oLstPng=Nothing
淡色
对于goFS.GetFolder(csSrcF.Files)中的每个文件
如果“png”=LCase(goFS.GetExtensionName(oFile.Name)),那么
如果奥尔斯滕什么都不是
设置oLstPng=oFile'第一个可能是最后一个
其他的
如果oLstPng.DateLastModified
VBScript不提供文件的重命名方法。您必须改用
MoveFile

objFSO.CopyFile strOldestFile, "F:\commandfolder\Processed\"
objFSO.MoveFile strOldestFile, objFSO.GetParentFolderName(strOldestFile) & "\execute.HMS"
更好的选择可能是记住文件对象,而不仅仅是其路径,然后使用对象的方法:

For Each objFile in colFiles
    If objFile.DateCreated < dtmOldestDate Then
        dtmOldestDate = objFile.DateCreated
        Set oldestFile = objFile
    End If
Next

oldestFile.Copy "F:\commandfolder\Processed\"
oldestFile.Name = "execute.HMS"
colFiles中每个objFile的

如果objFile.DateCreatedoldestFile.Name=“execute.HMS”
这是我的工作解决方案(它根据上下文进行编辑,但如果需要,您会找到它:)

Set obj=CreateObject(“Scripting.FileSystemObject”)
设置objFSo=CreateObject(“Scripting.FileSystemObject”)
设置objFolder=objFSO.GetFolder(“F:\commandfolder”)
设置colFiles=objFolder.Files
dtmOldestDate=Now
对于colFiles中的每个objFile
如果objFile.DateCreated
有一个文件/文件夹。移动方法:@Ekkehard.Horner我知道。但是,如果我正确理解了OP,他希望将文件复制到
F:\commandfolder\Processed
,然后重命名源文件夹中的文件。
For Each objFile in colFiles
    If objFile.DateCreated < dtmOldestDate Then
        dtmOldestDate = objFile.DateCreated
        Set oldestFile = objFile
    End If
Next

oldestFile.Copy "F:\commandfolder\Processed\"
oldestFile.Name = "execute.HMS"
Set obj = CreateObject("Scripting.FileSystemObject")
Set objFSo = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("F:\commandfolder")

Set colFiles = objFolder.Files

dtmOldestDate = Now

For Each objFile in colFiles
    If objFile.DateCreated < dtmOldestDate Then
        dtmOldestDate = objFile.DateCreated
        strOldestFile = objFile.Path
    End If
Next


objFSO.CopyFile strOldestFile, "F:\commandfolder\Processed\"
obj.DeleteFile("F:\commandfolder\Action\execute.hms")
objFSO.MoveFile strOldestFile, "F:\commandfolder\Action\execute.hms"