URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

VBSでファイルバージョンの確認

 DLLやOCXファイルのバージョンを調べて、古い場合には新しいものに置き換えるというのを作りたかったので。
 とりあえずファイルのプロパティをひたすらチェックすればいいかなと。
 この方法の問題はロケールで分岐させないといけないことかな~。

 とりあえずこんな感じ。

Const TargetFileName = "Flash64_14_0_0_145.ocx" Const TargetFilePath = "C:\Windows\System32\Macromed\flash" Const CheckParameter = "製品バージョン" Dim objShell, objFS, objFolder, objFolderItem, RetVal, i Dim arrParams(300) Set objFS = WScript.CreateObject("Scripting.FileSystemObject") If objFS.FileExists(TargetFilePath & "\" & TargetFileName) Then Set objShell = WScript.CreateObject("Shell.Application") Set objFolder = objShell.Namespace(TargetFilePath) Set objFolderItem = objFolder.ParseName(TargetFileName) For i = 0 To 300 arrParams(i) = objFolder.GetDetailsOf(objFolder.Items, i) '経過表示(動作確認用) 'WScript.Echo arrParams(i) & " : " & objFolder.GetDetailsOf(objFolderItem, i) If lcase(arrParams(i)) = CheckParameter Then RetVal = objFolder.GetDetailsOf(objFolderItem, i) Exit For End If Next End If WScript.Echo RetVal WScript.Quit(0)

 "ファイル バージョン"のところは英語なら"File Version"でしょうか(確認していませんが…)。ものによっては"製品バージョン"(Product Version)とかを見た方がいいのかも。
 とりあえず自分の用途では日本語と英語でうまく動けばいいはず。