Vbscript 如果文件存在,则删除该文件
我有一个用于重命名文件的vbscript。我需要在脚本中实现的是删除“新文件”(如果它已经存在) 例如:我有一批名为11111111.dddddd.pdf的文件,这些文件被重命名为11111111.pdf。问题是,当我重命名为11111111.pdf格式时,我会使用重复的文件结束,然后使脚本失败,因为显然不能有两个同名文件。我需要它重命名第一个,但删除其他重命名相同的 这里是我到目前为止对于IF语句的内容,但它不起作用,我得到一个错误,上面写着“类型不匹配:'FileExists”。我不知道如何让这部分代码以我想要的方式执行。如有任何帮助或建议,将不胜感激Vbscript 如果文件存在,则删除该文件,vbscript,filesystemobject,Vbscript,Filesystemobject,我有一个用于重命名文件的vbscript。我需要在脚本中实现的是删除“新文件”(如果它已经存在) 例如:我有一批名为11111111.dddddd.pdf的文件,这些文件被重命名为11111111.pdf。问题是,当我重命名为11111111.pdf格式时,我会使用重复的文件结束,然后使脚本失败,因为显然不能有两个同名文件。我需要它重命名第一个,但删除其他重命名相同的 这里是我到目前为止对于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
fileExists()
是FileSystemObject
的方法,而不是全局作用域函数
您还遇到了删除问题,DeleteFile()
也是FileSystemObject
的一种方法
此外,您似乎正在移动文件,然后试图处理覆盖问题,这是不正常的。首先,必须检测名称冲突,以便可以选择重命名文件或先删除冲突。我假设出于某种原因,您希望不断删除新文件,直到找到最后一个文件,这似乎暗示了您的问题
因此,您可以使用块:
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
还要注意,字符串与
=
符号的比较区分大小写。使用strCmp
和vbText
compare选项进行不区分大小写的字符串比较。如果已接近,只需删除文件,然后再尝试重写即可
dim infolder:set infolder=fso.GetFolder(在路径中)
dim文件:用于infolder.Files中的每个文件
dim名称:name=file.name
尺寸标注零件:零件=拆分(名称“.”)
如果UBound(部件)=2,则
'类似于a.c.pdf的文件名
dim newname:newname=零件(0)&“.”和零件(2)
dim newpath:newpath=fso.BuildPath(OUT\u PATH,newname)
"警告:
'如果我们有源文件C:\IN_PATH\ABC.01.PDF,C:\IN_PATH\ABC.02.PDF。。。
'其中只有一个将另存为D:\OUT\u PATH\ABC.PDF
如果存在fso.files(newpath),则
fso.DeleteFile新路径
如果结束
文件。移动新路径
如果结束
下一个
Salman A-我知道它必须是简单的。我对这件事感到非常激动,而且没有直接思考。工作起来很有魅力。非常感谢。谢谢您的回复。我也测试了这个,它很有效。
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