如何重命名文件并覆盖 VBS 中的现有文件?

Posted

技术标签:

【中文标题】如何重命名文件并覆盖 VBS 中的现有文件?【英文标题】:How to rename a file and overwrite existing in VBS? 【发布时间】:2020-06-02 19:51:51 【问题描述】:

我已经有一个现有的 vbs 脚本,用于从一个位置获取一个文件(标题为“Running_12345.xlsx”)并将其放入标题为“文件夹”的文件夹中。这是一个每小时文件,其名称根据运行时间而定。

现在,我想将文件重命名为“Running.xlsx”以删除不断变化的文件名。最初,此代码有效,但对于任何后续出现,它都会失败,因为“Running.xlsx”文件已经重命名过一次并且现在已经存在。如何向此代码添加覆盖逻辑:

dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

set oFldr = fso.getfolder("folder")

for each ofile in oFldr.Files
 if lcase(fso.GetExtensionName(ofile.Name)) = "xlsx" then
  ofile.name = "Running.xlsx"
  Exit for
 end if
Next

【问题讨论】:

也许你有几个 xlsx 文件和一个已经命名为 Running.xlsx 【参考方案1】:

呃,先删除文件。下面的代码做我想要的:

dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

set oFldr = fso.getfolder("C:\Users\brad.ohara\Desktop\MosaicTransforms\")

fso.DeleteFile("C:\Users\brad.ohara\Desktop\MosaicTransforms\MosaicFile.xlsx")



for each ofile in oFldr.Files
 if lcase(fso.GetExtensionName(ofile.Name)) = "xlsx" then
  ofile.name = "MosaicFile.xlsx"
  Exit for
 end if
Next

【讨论】:

以上是关于如何重命名文件并覆盖 VBS 中的现有文件?的主要内容,如果未能解决你的问题,请参考以下文章

将文件复制到另一个文件夹,在目的地重命名并覆盖现有文件

如何用VBS重命名文件

jquery文件上传 - 如何覆盖文件不重命名

重命名现有文件名

vbs拷贝指定文件并重命名

如何在将通用工件上传到jenkins管道中的JFrog Artifactory时重命名现有文件夹