Q:

Find substring from string output

I have a script (below) that finds the current version of Microsoft Office Installed and outputs it as a string. The string output for example would be 15.0.4771.1000. I don't care about anything past the 15. My goal is to verify that the version of Office is 15. I want to take the substring of the digts before the 1st . (period) and compare it to the value in questioned. How would I do this?
The script below doesn't work even with a wild card for the compared value.
Dim oRegistry
Dim oFSO
Dim sKey
Dim sAppExe
Dim sValue
Dim sAppVersion

Const HKEY_LOCAL_MACHINE = &H80000002

Set oRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}//./root/default:StdRegProv")
Set oFSO = CreateObject("Scripting.FileSystemObject")
sKey = "Software\Microsoft\Windows\CurrentVersion\App Paths"
oRegistry.GetStringValue HKEY_LOCAL_MACHINE, sKey & "\" & sAppExe, "", sValue
MsgBox oFSO.GetFileVersion(sValue)
If oFSO.GetFileVersion(sValue)="15.*" Then
  WScript.Echo("Office 2013 is installed")
Else
  WScript.Echo("You do not have Office 2013 installed")
End If
Set oFSO = Nothing
Set oRegistry = Nothing

A:

There are at least half a dozen ways to check a part of the string, but "wildcards" do not exist in VBScript.
One way would be If Left(value, 3) = "15." .... Another one would rely on the fact that a version string uses dots as separators: If Split(value, ".")(0) = 15 ....
The following uses Split() and cuts out the WMI; there is an easier way to read the registry in VBScript:
Option Explicit

Dim Shell, FSO, path, version
Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

path = TryRegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe\")
If FSO.FileExists(path) Then version = FSO.GetFileVersion(path)

If version = "" Then
    WScript.Echo "You do not have Office installed at all"
ElseIf Split(version, ".")(0) = 15 Then
    WScript.Echo "You have Office 2013 installed"
Else
    WScript.Echo "You have a different version of Office (" + version + ")"
End If

Function TryRegRead(key)
    On Error Resume Next
    TryRegRead = Shell.RegRead(key)
End Function

Notes

get into the habit of using Option Explicit in every script
don't bother setting stuff to Nothing, it really is not worth it
The backslash at the end of the path is required, it makes Shell.RegRead() return the default value for that key.
I'm pretty sure reading iterating the children of HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall and reading the Office version from there is a safer way of finding that information, compared to relying on the App Path for a single executable from the Office package.

