If file exists then delete the file

前端 未结 3 2139
傲寒
傲寒 2021-01-05 06:33

I have a vbscript that is used to rename files. What I need to implement into the script is something that deletes the \"new file\" if it already exists.

For exampl

相关标签:
3条回答
  • 2021-01-05 06:40

    fileExists() is a method of FileSystemObject, not a global scope function.

    You also have an issue with the delete, DeleteFile() is also a method of FileSystemObject.

    Furthermore, it seems you are moving the file and then attempting to deal with the overwrite issue, which is out of order. First you must detect the name collision, so you can choose the rename the file or delete the collision first. I am assuming for some reason you want to keep deleting the new files until you get to the last one, which seemed implied in your question.

    So you could use the block:

    if NOT fso.FileExists(newname) Then  
    
        file.move fso.buildpath(OUT_PATH, newname)           
    
    else
    
        fso.DeleteFile newname
        file.move fso.buildpath(OUT_PATH, newname)  
    
    end if 
    

    Also be careful that your string comparison with the = sign is case sensitive. Use strCmp with vbText compare option for case insensitive string comparison.

    0 讨论(0)
  • 2021-01-05 07:02

    You're close, you just need to delete the file before trying to over-write it.

    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
    
    0 讨论(0)
  • 2021-01-05 07:06
    IF both POS_History_bim_data_*.zip and POS_History_bim_data_*.zip.trg exists in  Y:\ExternalData\RSIDest\ Folder then Delete File Y:\ExternalData\RSIDest\Target_slpos_unzip_done.dat
    
    0 讨论(0)
提交回复
热议问题