semiono,
У меня так получилось:
Код:

$aReturn = _FileSearch(@ProgramFilesDir, "Cubase*.exe")
If $aReturn[0] = 0 Then
Run(@SystemDir & '\Install.cmd', "", @SW_HIDE)
Else
Run($aReturn[1])
EndIf
Exit
Func _FileSearch($sPath, $sFileMask)
Local $sOut = StringToBinary("0" & @CRLF, 2), $aOut
Local $hDir = Run(@ComSpec & ' /U/C DIR "' & $sPath & '\' & $sFileMask & '" /S/B/A-D', @SystemDir, @SW_HIDE, 6)
While 1
$sOut &= StdoutRead($hDir, False, True)
If @error Then ExitLoop
WEnd
$aOut = StringRegExp(BinaryToString($sOut, 2), "[^\r\n]+", 3)
If @error Then Return SetError(1)
$aOut[0] = UBound($aOut) - 1
Return $aOut
EndFunc ;==>_FileSearch
У меня скрипт находит любой Cubase.exe (т.е Cubase.exe, Cubase0.exe, Cubase1.exe , ..., Cubase9.exe). Если находит, запускает первый, который нашел, если не находит, запускает system32\cubase.cmd. Если надо искать не только в Program Files, а на диске, то
@ProgramFilesDir поменяйте на
@HomeDrive.
PS
Попробовал добавить к цифре в имени Cubase1.exe еще цифры и буквы(только латинские). У меня скрипту все равно, какие символы и сколько их между Cubase и .exe, он все равно его находит и запускает.
PPS
Поправил. Теперь и русские буквы отображаются нормально.