ソースディレクトリから宛先ディレクトリにファイルを移動するために記述したvbscriptがあります。現時点でスクリプトが機能する方法は、読み込まれたマッピングファイルがあることです(idをフォルダータイプにマップします)。移動される各ファイルはIDで始まり、宛先はIDのマッピング先に基づきます。マッピングファイルを読み取り、移動する各ファイルの宛先パスを作成します。これはすべて期待どおりに機能します。問題は、宛先ディレクトリにすでに存在するファイルを移動しようとすると、ファイルがソースディレクトリから移動されないことです。基本的に、宛先ディレクトリ内のファイルが既に存在する場合、それを上書きしたいと思います。現時点では、私の主なコマンドは次のとおりです。
fso.MoveFile ObjFile.Path, archiveTo & "\" & yearValue & "\" & monthValue & "\" & ObjFile.Name
デフォルトのファイルが既に存在する場合は、常にこれをデフォルトのディレクトリに上書きする方法はありますか?
残念ながら、VBScript MoveFile
メソッドは、ターゲットファイルが存在しない場合にのみ機能します。そのようなファイルが存在する場合は上書きできません。エラーをスローするだけです。
したがって、唯一のオプションは、CopyFile(上書きするオプションがあります)を使用してからDeleteFileを使用することです。
fso.CopyFile ObjFile.Path, archiveTo & "\" & yearValue & "\" & monthValue & "\" & ObjFile.Name, True
fso.DeleteFile ObjFile.Path
前述のように、MoveFileは既存のファイルを上書きできません。ただし、独自の関数を作成できます。
Function MoveFile(source, target)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile source, target, True
fso.DeleteFile source
End Function
そして、次のように呼び出します:
MoveFile ObjFile.Path, archiveTo & "\" & yearValue & "\" & monthValue & "\" & ObjFile.Name