vbscript - 如果文件存在则删除文件

标签 vbscript filesystemobject

我有一个用于重命名文件的 vbscript。我需要在脚本中实现的是删除已经存在的“新文件”。

例如:我有一批这样命名的文件 11111111.dddddddd.pdf 其中文件被重命名为 11111111.pdf。问题是,当我重命名为 11111111.pdf 格式时,我以重复的文件结束,然后使脚本失败,因为您显然不能有 2 个具有相同名称的文件。我需要它来重命名第一个,然后删除其他重命名相同的。

这是到目前为止我的 IF 语句的内容,但它不起作用,我收到错误消息,提示“类型不匹配:'FileExists”。我不确定如何让这部分代码以我想要的方式执行。任何帮助或建议将不胜感激。

dim infolder: set infolder = fso.GetFolder(IN_PATH)
dim file
for each file in infolder.files

dim name: name = file.name
dim parts: parts = split(name, ".")
dim acct_, date_
acct_ = parts(0)
date_ = parts(1)


' file format of a.c.pdf
if UBound(parts) = 2 then
    ' rebuild the name with the 0th and 2nd elements
    dim newname: newname = acct_ & "." & parts(2)
    ' use the move() method to effect the rename
    file.move fso.buildpath(OUT_PATH, newname)  

    if  newname = FileExists(file.name) Then            
    newname.DeleteFile()
    end if   
end if

next 'file

最佳答案

你很接近,你只需要在尝试覆盖它之前删除该文件。

dim infolder: set infolder = fso.GetFolder(IN_PATH)
dim file: for each file in infolder.Files

    dim name: name = file.name
    dim parts: parts = split(name, ".")

    if UBound(parts) = 2 then

       ' file name like a.c.pdf    

        dim newname: newname = parts(0) & "." & parts(2)
        dim newpath: newpath = fso.BuildPath(OUT_PATH, newname)

        ' warning:
        ' if we have source files C:\IN_PATH\ABC.01.PDF, C:\IN_PATH\ABC.02.PDF, ...
        ' only one of them will be saved as D:\OUT_PATH\ABC.PDF

        if fso.FileExists(newpath) then
            fso.DeleteFile newpath
        end if

        file.Move newpath

    end if

next

关于vbscript - 如果文件存在则删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9012529/

相关文章:

javascript - ActiveXObject构造函数参数列表

windows - 如何使用 FileSystemObject.Size 可靠地确定文件夹大小?

c# - 目录文件大小计算 - 如何让它更快?

c# - windows7 以编程方式设置 "show icon and notification"

asp.net - 用于调试 VB 脚本代码的工具或 IDE

vbscript - 为什么我收到“找不到路径”错误?

vba - 为什么对 InvokeVerb ("&Print"的调用不起作用?

vbscript - 永久删除 Windows Scripting Host (WSH) 脚本中的 Logo

collections - 如何检查对象是否为集合

VBscript,在FTP中创建目录