【问题标题】:vbs copy and rename filevbs复制和重命名文件
【发布时间】:2016-11-01 11:55:15
【问题描述】:

我正在尝试在 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

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

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

【问题讨论】:

    标签: vbscript file-rename file-copying


    【解决方案1】:

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

    /backup/Database_06/29/2016.xml 
    

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

    backupName= "Database_" & replace(date, "/", "_") & ".xml"
    

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2013-06-13
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2021-07-21
      • 2015-05-09
      相关资源
      最近更新 更多