Это хорошее решение! Только я с дальнейшими действиями запарился поэтому пока до этого не доходило.
Но вот вернулся, лучше бы это переделать если возможно, чтобы искать только ....[test]Cubase[/test].... & .exe
Ато вариантов многовато может быть относительно первого поста, имя же файла всегда точно определено,
если отсечь (пробел)4.exe и путь C:\~..\..\
Я вдобавок хотел бы чтобы в случае ненахождения батник запускался, обычно у меня в system32 лежит
одноимённый батник system32\cubase.cmd который так же запустит приложение.
Поэтому, очень хотелось бы чтобы расширение exe и cmd поддерживались одновременно.
Но скрипт так же должен завершиться при запуске первого совпадения.
Я вот тут взял скриптик для поиска, правда для другой цели, чуть исправил...
http://forum.oszone.ru/thread-166317.html
Код:

$path = @ScriptDir & "\Plugins"
$sFile = FileList($path, "*.inf")
If $sFile[0]>0 Then
For $i=1 To $sFile[0]
Run('rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 ' & $sFile[$i])
Next
EndIf
Func FileList($sPath, $inFilter = '*', $exFilter = '');$includeFilter='*.txt,*.htm' $excludeFilter='www,asp,desktop'
$sPath = StringRegExpReplace($sPath, '\\+$', '')
Local $aRetArray[1], $sFindNextFile, $sCurrentPath, $iFL
Global $FolderList[2]
$aRetArray[0] = 0
$FolderList[0] = 1
$FolderList[1] = $sPath
Local $sFindFirstFile = FileFindFirstFile($sPath & "\*")
If @error = 1 Then Return SetError(1, 0, -1)
#Region
If StringRight($inFilter, 1) = ',' Then $inFilter = StringTrimRight($inFilter, 1)
$inFilter = StringReplace($inFilter, '^', '\^')
$inFilter = StringReplace($inFilter, '.', '\.')
$inFilter = StringReplace($inFilter, '(', '\(')
$inFilter = StringReplace($inFilter, ')', '\)')
$inFilter = StringReplace($inFilter, '[', '\[')
$inFilter = StringReplace($inFilter, ']', '\]')
$inFilter = StringReplace($inFilter, '+', '\+')
$inFilter = StringReplace($inFilter, '$', '\$')
$inFilter = StringReplace($inFilter, '*', '.*')
$inFilter = '(?i)^' & StringReplace($inFilter, ',', '$|^') & '$'
If StringInStr($exFilter, ',') > 0 And $exFilter <> '' Then
If StringRight($exFilter, 1) = ',' Then $exFilter = StringTrimRight($exFilter, 1)
$exFilter = StringReplace($exFilter, ',', '|')
$exFilter = StringReplace($exFilter, '.', '\.')
$exFilter = StringReplace($exFilter, '(', '\(')
$exFilter = StringReplace($exFilter, ')', '\)')
$exFilter = StringReplace($exFilter, '[', '\[')
$exFilter = StringReplace($exFilter, ']', '\]')
$exFilter = StringReplace($exFilter, '+', '\+')
$exFilter = StringReplace($exFilter, '$', '\$')
$exFilter = '(?i)(' & StringReplace($exFilter, '^', '\^') & ')'
EndIf
#EndRegion
$iFL = 1
Do
$sFindFirstFile = FileFindFirstFile($FolderList[$iFL] & "\*")
If @error = 0 Then
While 1
$sFindNextFile = FileFindNextFile($sFindFirstFile)
If @error = 1 Then ExitLoop
$sCurrentPath = $FolderList[$iFL] & "\" & $sFindNextFile
If StringInStr(FileGetAttrib($sCurrentPath), "D") Then;папка
$FolderList[0] += 1
If UBound($FolderList) < $FolderList[0] + 1 Then ReDim $FolderList[$FolderList[0] + 1000]
$FolderList[$FolderList[0]] = $sCurrentPath
Else;файл
If StringRegExp($sFindNextFile, $inFilter) = 1 And ($exFilter = '' Or StringRegExp($sFindNextFile, $exFilter) = 0) Then
$aRetArray[0] += 1
If UBound($aRetArray) < $aRetArray[0] + 1 Then ReDim $aRetArray[$aRetArray[0] + 1000]
$aRetArray[$aRetArray[0]] = $sCurrentPath
EndIf
EndIf
WEnd
EndIf
FileClose($sFindFirstFile)
$iFL += 1
Until $iFL > $FolderList[0]
ReDim $aRetArray[$aRetArray[0] + 1]
ReDim $FolderList[$FolderList[0] + 1]
Return $aRetArray
EndFunc ;==>FileList
Однако, не знаю, слишком огромный скрипт для простой задачи, нельзя ли его упростить?
И в данном случае применить для запуска
Cubase 4.exe который надо найти на диске и запустить?
PS для inf файликов, если не затруднит тоже поправте скрипт, если возможно что-то там упростить?