如何重命名文件并覆盖 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 中的现有文件?的主要内容,如果未能解决你的问题,请参考以下文章