use*_*060 15 vbscript file-io fso
我有一个用于将文件从源目录移动到目标目录的vbscript.目前脚本的工作方式是我有一个读入的映射文件(将id映射到文件夹类型).移动的每个文件都以id开头,目标将基于id映射到的内容.我读入映射文件并为每个要移动的文件构建目标路径.这一切都按预期工作,问题是当我尝试移动目标目录中已存在的文件时,文件不会从源目录移动.基本上我希望它覆盖目标目录中的文件(如果它已经存在).目前,我的主要命令是:
fso.MoveFile ObjFile.Path, archiveTo & "\" & yearValue & "\" & monthValue & "\" & ObjFile.Name
Run Code Online (Sandbox Code Playgroud)
有没有办法将此默认设置为始终覆盖destionation目录中的文件(如果已存在)?
Sha*_*ard 29
不幸的是,VBScript MoveFile方法仅在目标文件不存在时才起作用.它存在时不能覆盖这样的文件,只是抛出错误.
所以唯一的选择是使用CopyFile(它有覆盖选项)然后使用DeleteFile:
fso.CopyFile ObjFile.Path, archiveTo & "\" & yearValue & "\" & monthValue & "\" & ObjFile.Name, True
fso.DeleteFile ObjFile.Path
Run Code Online (Sandbox Code Playgroud)
如前所述,MoveFile 无法覆盖现有文件。但您可以创建自己的函数:
Function MoveFile(source, target)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile source, target, True
fso.DeleteFile source
End Function
Run Code Online (Sandbox Code Playgroud)
然后这样称呼它:
MoveFile ObjFile.Path, archiveTo & "\" & yearValue & "\" & monthValue & "\" & ObjFile.Name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52771 次 |
| 最近记录: |