怠日記

写真・金魚・昆虫・プログラミングの趣味を語るサイトです。似たようなことをnoteにも書いたり書いてなかったり。

VBScript - ファイルの更新日時を変更する

ファイルの更新日時を変更するには Shell オブジェクトを使う。

サンプルスクリプト

次のスクリプトは、ファイル(C:\path\to\folder\filename.txt)の更新日時をシステム日時に変更する。

Dim shell
Set shell = CreateObject("Shell.Application")
Dim folder
Set folder = shell.NameSpace("C:\path\to\folder")
Dim file
Set file = folder.ParseName("filename.txt")
file.ModifyDate = Now

説明

Shell.Application オブジェクトを生成する。

Set shell = CreateObject("Shell.Application")

NameSpace メソッドを使って、指定したフォルダーのオブジェクトを取得する。

Set folder = shell.NameSpace("C:\path\to\folder")

フォルダーオブジェクトの ParseName メソッドで、フォルダーにあるファイルのオブジェクトを取得する。

Set file = folder.ParseName("filename.txt")

ファイルオブジェクトの ModifyDate プロパティに変更後の日時を設定する。

file.ModifyDate = Now

【補足】
フォルダーオブジェクト、ファイルオブジェクトとあるが、FileSystemObject のオブジェクトとは別物。

FileSystemObject のファイルオブジェクトは DateLastModified プロパティで更新日時を取得できるが、変更はできない。