vbs复制并重命名文件

时间:2016-06-29 16:26:45

标签: vbscript file-rename file-copying

我试图在VBScript中创建一个sub来移动副本文件。我尝试了一些我在这里找到的不同方法,以及其他一些网站。我有以下工作。

dim SEVO_XML_PATH 'File path to Sevo xml file
dim SEVO_BACKUP 'File path for sevo's backup location
SEVO_XML_PATH="xml\Database.xml"
SEVO_BACKUP="backup\"   

sub BackupSevo()
    If FSO.fileExists(SEVO_XML_PATH)=true then
        FSO.copyFile SEVO_XML_PATH, SEVO_BACKUP
    else
        msgbox("Sevo XML not found." & vbnewline & "Please contact Engineering.")
    end if
end sub

但是我想将日期追加到文件名的末尾。当我添加要粘贴的文件的名称时,如so ...

backupName = "Database_" & date & ".xml"
FSO.copyFile SEVO_XML_PATH, SEVO_BACKUP & backupName

这给了我一条未找到的路径"错误。我已经尝试复制该文件,然后使用moveFile重命名它,但我得到了同样的错误。

FSO.copyFile SEVO_XML_PATH, SEVO_BACKUP
dim backupName
backupName = "Database_" & date & ".xml"
FSO.moveFile SEVO_BACKUP & "Database.xml", SEVO_BACKUP & backupName

我尝试了一种方法,我发现here创建一个对象来保存文件,然后使用name属性来更改名称。

set sevoXML=FSO.getFile(SEVO_XML_PATH)
sevoXML.copy SEVO_BACKUP
set sevoXMLBackup=FSO.getFile(SEVO_BACKUP & "Database.xml")
sevoBackup.name=backupName

但我收到错误"无效的程序调用或参数"在最后一行。

有关修复其中一种方法或使用其他方法的任何想法吗? 感谢

1 个答案:

答案 0 :(得分:2)

date返回以反斜杠分隔的日期。就像windows中的文件夹结构一样。所以你实际上是在尝试写入文件夹:

/backup/Database_06/29/2016.xml 

并且您没有文件夹名称Database_0629。格式化日期以将反斜杠更改为下划线或其他内容:

backupName= "Database_" & replace(date, "/", "_") & ".xml"
相关问题