| Works
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)とかを見た方がいいのかも。
とりあえず自分の用途では日本語と英語でうまく動けばいいはず。